Copyright: Copyrighted 1997 by eXpectation software


Table of Contents

Introduction to Dynamo - Brief abstract of the program.

Overall theory - Some of the basic underpinnings of this simulator.

How to start a new model (Tutorial) - How to build a model, step by step instructions on building sample programs.

Registration/Feedback - Where to send complaints/kudos, how to get the next version, and registering your copy.

Menu Commands - Complete description of the entire menu tree.

Buttons - Complete description of all buttons available for building a model.

Views - A description of the variety of ways to observe the model and its data.

Error Messages - Description and causes/cures for Dynamo error messages.

Future Upgrades - Improvements planned for Dynamo.

Revision History - Enhancements/bug fixes


Introduction to Dynamo

This program is an analog simulator designed to aid in the analysis of complex dynamic systems (mechanical, electrical, etc.). It allows a designer to easily model real world components and interactions, studying the resulting responses with a computer rather than having to physically model the system.

Many complex dynamic systems can be simulated mathematically, but the downfall usually becomes one of complexity and/or nonlinearity.  With the "brute force" approach taken in Dynamo, these do not present a problem. Instead, Dynamo allows rapid system modeling with easy display of the results.  The ability to do "what if" scenarios is also taken beyond common mathematical simulation limitations.

Please note that this documentation assumes a healthy technical background and a working knowledge of Windows.

A final reason for using Dynamo is found in our logo: "Playing with a computer and calling it work beats doing real work any day."

Throughout this help file, the terms 'buttons' and 'blocks' are used interchangeably to refer to the individual elements used to build a model

for simulation and analysis.

Table of Contents


Theory

The following discusses some of the underlying principles behind Dynamo.

Building blocks

Integration

Sorting

Required Inputs

Table of Contents


Building blocks

The Dynamo simulator consists of a large number of blocks, each performing a unique function, which can be tied together to simulate just about any physical dynamic system.  The best way to get a feel for the Dynamo's capabilities is to browse through the Buttons section of this help file, and get a feeling for the types of capabilities offered.  The two tutorials offered in Starting a New Model  also show practical ways in which very real systems can be modeled within Dynamo.

Theory

Table of Contents


Integration

Since Dynamo is designed primarily for analyzing dynamic systems, we are dealing with issues involving mass and acceleration, leading to the well known equation

F = M x A;   Force = Mass times Acceleration

From this equation, we can use integration to derive both the velocity and position of various physical elements, assuming knowledge of the appropriate initial conditions.  Stated another way, as various forces act upon physical elements of our model, we can integrate the resultant accelerations to determine subsequent velocities and positions.

The integration scheme utilized in Dynamo is Runge-Kutta utilizing adaptive stepsize control.  (For further information, refer to  "Numerical Recipes in C, Second Edition", chapter 16.2,  by Press, Vetterling, Teukolsky and Plannery; Cambridge University Press, 1992)

There are two variants of the adaptive stepsize approach, 4/5 and 7/8.  The 4/5 approach utilizes both fourth and fifth order integration schemes to predict the integration error and adjust the step (integration interval) size accordingly.  The 7/8 variant utilizes the same technique with seventh and eighth order integration schemes.  The 7/8 variant is useful for situations requiring increased numerical stability and/or accuracy, but may be unnecessarily slow for those models that do not require it.

The adaptive step size approach calculates an integration over the output interval by calculating an answer for four sub-intervals and five sub-intervals (using the 4/5 option), and comparing the two answers.  If the difference between the two answers is greater than the error limit specified in the Clock block, then a fraction of the output interval is used, and the process repeated.  This continues until the resultant integration interval is small enough to meet the error limits.

On occasion, there will be a mismatch between the model's "stiffness" or resonant frequency, and the output interval chosen.  On this occasion, the number of output interval subdivisions generated may become excessive, and exceed those specified by MaxSteps.  The most expeditious approach for solving this is to choose a significantly smaller output interval, until the two are more closely matched.  There may also be occasions when you would want to significantly increase the Max Steps limit.

The maximum error found over an output interval, and the number of sub-intervals the output interval may have been divided into, are both stored in special Invisible blocks attached to the Clock block.

Theory

Table of Contents


Sorting

During the simulation process, the value for a particular block at each moment in time necessitates having the correct information, for that time slice.  The first step performed by Dynamo at the start of a simulation is to insure the blocks are sorted correctly.  This guarantees that a block's input(s) have already been correctly calculated.

A common problem in building a model is developing a "loop", where A is an input to B which is input to C which in turn is an input to A.  Another way to state this is with the expression:

X = f(X, Y)

With this type of model, it is not possible to sort the blocks where all blocks have their inputs correctly calculated. When running a model with this type of condition, a Sort Error will be generated.

This situation, which occurs frequently in realistic systems, can be handled in one of the following ways:

Integrate block:  The loop mentioned above can be "broken" by inserting an Integrate block  in the loop.  Since these blocks develop their value over a time span, they can be used to bridge the gap between time intervals.  Although not very realistic, a loop consisting entirely of Integrate blocks will also generate a Sort Error.

Wye block:  The Wye block (not implemented in this release) is designed specifically for this type of situation, and will be available in the next release.

Theory

Table of Contents


Calculation Procedure

The calculation procedure is a function of the block types  present during a simulation.

There are three steps performed at the initialization of a simulation to perform the "time zero" calculations for all blocks.

1.  All of the Initialize blocks are calculated.  This is the only time they are calculated.

2.  All Integrate blocks initial conditions are set.  If the dynamic initialization option is chosen for an Integrate block, these blocks should be Initialize type.  Otherwise, an unpredictable initialization will occur, where the inputs have not been correctly computed.

3.  All other Active blocks are initialized.  For most blocks, this is simply performing the calculations as required by the block type.  For some types (Decay and Delay), there are very specific initialization steps performed.

After the initialization steps are completed, the following steps are executed at every output interval:

1.  Utilizing the chosen Runge-Kutta integration scheme, all of the Integrate blocks are extrapolated over the output interval.  This requires several evaluations of the rest of the Active blocks, and may require "splitting" the output interval into smaller segments for obtaining the desired accuracy.

2.  All of the Active blocks are calculated.

3.  The values of all blocks are stored for later saving, plotting, etc.

Theory

Table of Contents


Required Inputs

Most of the blocks have at least one Input.  For those blocks where one or more of the Inputs are required (as outlined in this help file), the system will not run if one of the required inputs is not connected to another blocks output.  This is shown with a Run Time Error message stating:

A "Type" block, "Name", needs the "nth" input filled.

The message box has an OK and Cancel button.  Pressing OK will continue onto the next block which does not have a required connection, or will abort the simulation if it is the last one found.  Pressing Cancel will abort the simulation without continuing the error checking process.

Theory

Table of Contents


Starting a new model

The following sections cover the basics of building a model, as well as a walk through of four different models.

Constructing the model - The basics of constructing a model, including the mechanics involved and the various display possibilities.

Cosine Integration - A very simple model illustrating the use of the Integrate block

Second Order - A sttraightforward comparison between the Dynamo approach to modeling, and a classical solution.

Three planet problem - The construction of a model for which a classical solution does not exist, and a model is the only approach.

Balancing broomstick - A description of the process for turning a "real world" problem into a Dynamo model.

Table of Contents


Constructing the model

Mechanics - how to physically build the model.

Modeling - tips on converting real world components into a model

Displaying - Controlling the various display attributes

Mouse commands - Brief synopsis of what the mouse does within Dynamo.

Starting a new model

Table of Contents


Mechanics

The first step, if necessary, is to construct a New page by depressing the [image] button.  With a new page, the only block on the page is the Clock block (looks like a clock).  The Clock block controls and generates the time scale used for generating the simulation.

All of the steps involved in constructing a model are done with Chart view.  If a chart view is not the active window, then it must be made so now.  The easiest way to do this is to close or minimize all windows that aren't a chart window.

The next step is to add additional blocks to the model. If there are no button bars showing, then you need to use the View menu selection to turn some of them on.  The menu indicates if a button bar is displayed with a check mark in front of it.  These button bars may be dragged around to different poritions of the window or title bar as desired.  A normal exit from Dynamo will remember where they were, and return them to the position when restarted.

Once a button bar is showing, simply left-click the mouse while the cursor is over the button of interest.  Move the cursor down to the chart area, where the cursor will now resemble a block (square with small projections).  You will also notice that the chart area is covered with small squares.  The blocks, as they are placed, must be done on a grid pattern, and the small squares mark the grid pattern.  Get the center of the cursor near one of the small squares, and left-click once again.  The block is now placed on the chart.

When observing the nominal block (without the Invert parameter checked), the inputs (up to three) are on the left hand side, and the output is on the right hand side.

After placing a block, left-clicking in a blank area of the chart will once again change the cursor to the block shape (and notice that the previously clicked button is now depressed).  This allows multiple placements of a particular block type.  To reset the cursor without placing a block, right-click in a blank area of the chart window.

The block can be selected by first right-clicking the block.  The block is indicated as selected by changing to the inverse of its normal color.  Once selected, the block can be moved, deleted or copied.  To move the block, left-click on the block, move the cursor (now block shaped) to the new location, and left-click again.  To delete the block, either choose Edit | Cut from the menu, left-click the [image] button from the main tool bar, or use Ctrl-X from the keyboard.  Using Cut or one of its variants (Ctrl-X), copies the block to the Dynamo clipboard prior to deleteing it.  If Delete is used instead (Edit | Delete or the Delete key), the block is not copied to the Dynamo clipboard prior to being erased.  To copy the block, either choose Edit | Copy from the menu, left-click the [image] button from the main tool bar, or use Ctrl-C from the keyboard.  The block can be deselected by right-clicking anywhere within the chart, but outside of the button.

The blocks can be connected from one to another by left-clicking on one block's connection point (input or output) to another block's connection point.  After the connection process starts, a "rubber band" is connected between the cursor and the original connection point.  When the second connection point is made, the rubber band disappears and the normal line is drawn.  To quit the connection process after the first connection is made, simply right-click anywhere within the chart window.

The general rules for connections are:

Only an input can be connected to an output, and vice versa.

A block cannot be connected to itself.

An output can be connected to as many inputs as desired, but an input can be connected to only one output.

Occasionally, when constructing a line, you may get a Line Error message.  This simply means that Dynamo could not find enough room to draw a line between the selected connection points.  In this case, a "connection character" is placed adjacent to the input/output pair indicating the connection.  This can be corrected by either modifying the spacing and line count between blocks, or inverting one of the connecting blocks.  To attempt to redraw the line, simply clear the connection at the input block, and reconnect the input/output pair.

Constructing the model

Starting a new model

Table of Contents


Modeling

In this section, we will cover some of the rudiments of translating a physical system into a Dynamo model.  The addtitional tutorials, Cosine Integration, Second Order, Three Planet and Broomstick, go into more detail with a specific application.

For any mechanical body, the sum of the forces acting on the body must equal zero, usually written as:

where:

m is the mass of the body,

c is velocity related forces, usually called viscous drag,

k is position related forces, usually a spring,

and x is a generalized position vector.

For modeling purposes, this equation is rewritten to solve for acceleration:

Two of the 'unknowns" on the right hand side of the equation, velocity and position, are "solved" by integrating the acceleration.

Assuming a single degree of freedom, this can be modeled in Dynamo as:

where the parameters for the Sum block are -1.  Note that the names of blocks represent their output functions.  By varying the parameters associated with mass, drag, etc., under damped, over damped and (if drag is negative) unstable systems can be simulated.  Modifying the initial conditions for the integrators can be sufficient to provide the excitation for this simple model.

So far, what has been done to date can be solved classically with traditional differential equations.  Where the power of modeling comes in, however, is when noncontinuous or random elements are added.  Some examples, and the accompanying model, are:

A spring with unusual characteristics (a different spring rate in the negative direction from the positive direction), replacing the Gain block with a Function Generator block, allowing very specific force/position characteristics.

Introducing backlash between the spring and the moving element.

The possibilities for simulation are limited only by your imagination.  For assistance with a particular modeling problem, contact the author.

Constructing the model

Starting a new model

Table of Contents


Displaying

There are currently three views in Dynamo, one of the model, and two of the data generated by a simulation.

The model view, called a chart, is well described in the following sections:

Mechanics - Discusses using the chart window to create/modify a model.

Chart Window - Generic description of the chart window and various useful possibilities.

Chart Viewing Dialog - How to modify the appearance of the chart window

The Graph view displays the output of up to three blocks plotted  on the Y axis, with a fourth block being the X axis.

The List view displays the output of all blocks in a columnar text format.

All three views may be printed; from the keyboard with Ctrl-P, from the menu with File | Print, or by left-clicking the [image] button on the main tool bar.  The chart and list views are printed essentially as they are shown on the screen.  The graph view is printed on the top half of a page in Portrait mode, and on the entire page in Landscape mode.  Print preview is also available for all three views, available from the menu with File | Print Preview or utilizing the [image] button.

Constructing the model

Starting a new model

Table of Contents


Shortcuts with mouse

The following are activities/shortcuts with a mouse that are unique to Dynamo.  These all occur within the Chart view (main working view of the model).

Left Click

Normal Cursor

Blocks, normal - clicked within a block, activates the Block Editor dialog box.

Blocks, selected - clicked within a selected block (inverse colors), changes the cursor to a Block Cursor and allows moving the block to another location

Blocks, inputs/output - Activates the Rubber Banding mode, allowing connection to another block

Open chart area - Switches to the Block Cursor, and allows placing another copy of the most recently placed block onto the model.

Buttons - Activates the appropriate command, or selects a particular block for inclusion in the model, and switches to the Block Cursor for placement in the model.

Block Cursor

Indicates a block has been selected for placement on the model, and the new block will be placed when the cursor is left-clicked appropriately close to a grid location.  May be aborted by right-clicking the mouse.

Rubber Banding

Is trying to make a connection from the source block to another block.  Will only go away when another "legal" connection is made, or is aborted with a right-click.

Context Help

Allows activating help for a menu command, button command or block description.  May only be aborted by selecting (left-clicking) outside the Dynamo area.

Right Click

Normal Cursor

When performed within a block, "selects" the block (displays it in inverse colors) and allows moving/copying/deleting the block.

Block Cursor

Aborts the block placement action.

Rubber Banding

Aborts the block connection action.

Constructing the model

Starting a new model

Table of Contents


Cosine Integration

This first tutorial is deliberately simple, and will go through some of the very basic steps for generating a model, running a simulation, and viewing the results.  The end result which is generated by this tutorial is in CosInt.cht, supplied with the distribution package.

•	The basic groundwork

•	Opening the model and a blank chart

•	Placing the appropriate blocks on the chart

•	Naming the blocks

•	Connecting the blocks

•	Setting parameters

•	Running a simulation

•	Viewing the data in text format

•	Viewing the data in graphic format

Starting a new model

Table of Contents


The basic groundwork

This very simple model will test the integration block's capability by integrating a cosine function and comparing it with a sine function.  The two functions should be identical.  The clock block will supply a "signal" to the cosine and sine blocks, generating the respective cosine and sine curves.  The cosine curve will then be integrated, and the integration results will be compared with the sine curve.

It is recommended that after each step, the model being developed is saved under the name CosTest.  This is accomplished by typing Ctrl-S (holding down the Ctrl key while pressing the S key).

Cosine Integration

Starting a new model

Table of Contents


Opening the model and a blank chart

If Dynamo is not already active, then start it by:

•	Open Explorer and access the directory which contains the Dynamo files

•	Double left-click on Dynamo.exe

A newly activated Dynamo will open with a blank chart view.  If Dynamo does not currently have a blank view, then

•	Close all views that may be open (left-click on the X in the upper right hand corner of each view)

•	Generate a blank view by either:

•	Clicking on the New Page icon

•	Click on File on the menu, then click on New on the sub-menu

•	Type Ctrl-N (hold down the Ctrl key then press n)

Cosine Integration

Starting a new model

Table of Contents


Placing the appropriate blocks on the chart

A blank chart will automatically have a Clock block in the upper left corner of the chart.  We will now be adding additional blocks to the chart.

Look for the Transcendental toolbar, as illustrated in the Buttons page.  If it is not visible, then access the View section of Dynamo's menu.  This will list all of the available toolbars.  If the Transcendental selection is not checked, then left-click Transcendental.  If Transcendental has a check mark, then the Transcendental toolbar is somewhere on your monitor.

With the cursor, left click the second button on the Transcendental toolbar, which looks like a cosine curve.  The cosine button will now stay depressed.  Move the cursor over the chart area, and it will now appear as a square block with slight protrusions (see Shortcuts).  Center the cursor over the small red square to the immediate right of the clock block, and left-click.  The Cosine block will now appear on the chart, and the cursor and toolbar will return to normal.  Repeat this process for the Sine block (first one on the toolbar), and place it on the small red square directly below the Cosine block.

The Integrate block is part of the Time toolbar.  Access the Time toolbar, as discussed above, and place the Integrate block to the immediate right of the Cosine block.

The last block to be placed is the Sum block.  This is part of the Math toolbar, and has the Greek letter sigma on it.  Place it to the immediate right of the Integrate block.  All blocks are now positioned where they belong on the chart.

Cosine Integration

Starting a new model

Table of Contents


Naming the blocks

The general rule is that all blocks are named for their output values.  With the current model, the default names (block types) are satisfactory for most of the blocks.  The Sum block, however, should be renamed.  It will be used to calculate the difference between the integrated cosine curve and the sine curve, and therefor will be a measure of the integration algorithm's accuracy.  Therefor, we are going to rename the Sum block to Error.

Left-click on the Sum block, which will bring up the Block Editor.  In the text box in the upper left corner, labeled Name, will be Sum, the default name for a Sum block.  Erase this and type in Error.  Now click on the OK button, and notice that the Sum block now has Error written beneath it.  All the blocks are now properly identified.

Cosine Integration

Starting a new model

Table of Contents


Connecting the blocks

Dynamo works by processing a "signal" as it is transmitted from one block to the next.  In this model, the "signal" comes from the clock block, but, as in the other tutorial examples, it can also come from the initial conditions of the integrators.

To pass the output of block to the input of another block, they must be "connected", which is what we will do this step.

The general rules for connection are:

1.	An input can only be connected to an output, and vice-versa.

2.	An input can only be connected to one output, but an output can be connected to as many inputs as desired.

3.	A block cannot connect to itself.

To start a connection, left click on the a block's input or output.  (To change the cursor back to normal, right-click anywhere in the chart but on a block.)  For this exercise, perform the following steps:

•	Left-click on the Clock's output (right-hand side of the block) and then left-click on the Cosine's input (left-hand side of the block).  There should now be a line connecting the Clock block to the Cosine block.

•	Left-click on the Clock's output again, and connect it to the Sine's input.

Continuing in this same fashion, make the follwing connections:

•	Cosine's output to Integrate's first (top) input

•	Integrate's output to Error's first (top) input

•	Sine's output to Error's second (middle) input

All of the connections for this model have now been made.

Cosine Integration

Starting a new model

Table of Contents


Setting parameters

Each block contains up to three parameters which can be set.  Most of these parameters are input gains, and the default is set to 1.  However, for the Error block, which adds all of its inputs, we need to make one of the input gains equal to -1 to obtain the difference between two inputs.

Left-click on the Error block and bring up its Block Editor once again.  On the right hand side are three text boxes each labeled Gain, with the default value of 1 in each of them.  Change the middle one (where the Input is labeled as Sine) to -1 and click the OK button.  Now the Sine value will be subtracted from the Integrate value for the Error block's output.

The final parameter setting is for the Clock block.  We want the sine and cosine blocks to go through at least one full cycle, so we must set the Simulation Time.  Since the sine and cosine blocks use radians as input, then we want to set the Simulation Time to 6.3 (2 * Pi).  Left-click the Clock block, and within the Block Editor, notice that the third parameter is labeled Simulation Time.  Change this to 6.3 and click the OK button.

Cosine Integration

Starting a new model

Table of Contents


Running a simulation

Running a simulation causes the Clock block to "drive" the rest of the model and deliver data points for each active block every output interval.

There are two ways to initiate a Run command:

•	From the menu, click Options and then Run

•	From the Display toolbar, click on the Run button (a stick figure running)

After initiating a Run, a small window will appear and display the current "time" for the simulation.  The simulation may be stopped at any point by left-clicking within this small window.

Once a simulation has completed, the values above all of the blocks represent their final value.

Cosine Integration

Starting a new model

Table of Contents


Viewing the data in text format

Viewing the data in text format can be done in one of two ways:

•	From the menu, click Options and the List

•	From the Display toolbar, click on the List button (a rectangle with many vari-colored horizontal lines)

You can now view the data columnar format.

Cosine Integration

Starting a new model

Table of Contents


Viewing the data in graphic format

Viewing the data in graphic format can be initiated in one of two ways:

•	From the menu, click Options and then Graph

•	From the Display toolbar, click on the Graph button (picture of a small x-y graph)

The Graph window is capable of displaying up to three block values referenced to a fourth block value.  The fourth block value (x axis) is traditionally the Clock block (or time), but can be any block of your choosing.

When a blank graph is first opened, it plots the Clock block on both the x and y axes, a rather boring straight line.  We will now go through the steps required to view three different blocks on the y axis.

With the graph window active, access the Graph Properties dialog box by either:

•	From the menu, click Options and then Viewing

•	From the Display toolbar, click on the Viewing button (supposed to resemble a pair of binoculars)

The initial view of the Graph Properties dialog box shows the X axis information.  For this tutorial, we will not change any of this information.

To access the dialog box for the First Y Axis, click on the tab labeled Graph 1. On the pull down list (to the right of the Clear button), Clock should be currently listed.  Click on the pull down list's down arrow to display a list of blocks available for plotting.  Click on Cosine, and this block will be chosen.

Using these same techniques, click on Graph 2 and choose Integrate to be plotted, and on Graph 3 choose Error to be plotted.  Press the OK button at the bottom of the dialog box, and the graph view will now display these three blocks with reference to the time base.

This completes the initial tutorial, and you should now have a model similar the one provided in CosInt.cht, supplied with the distribution files.

Cosine Integration

Starting a new model

Table of Contents


Second Order

This sample program illustrates one of the more common types of problems associated with Dynamo, solving the traditional second order equation.

The basic equations and model are outlined in the Modeling section of the help file.  For the rest of the comments, please view (or have available) the ScndOrdr.cht model supplied with the distribution disks.

The first two rows of blocks are the conventional solution for a second order system.  The current model's parameters are set-up for the under-damped case, as shown in the graphical view.

The conventional solution for this problem, assuming under-damped conditions, is:

The lower three rows of blocks illustrate the solution for this approach with Dynamo, and the graph view illustrates the error between the two approaches (for the current settings).

One of the major benefits of Dynamo is illustrated by changing one of the parameters to alter the system from under-damped to over-damped.  By changing B (damping) from 1 to 5, the model now becomes over-damped, and simulation shows the traditional curve in the graph view.  However, the traditional solution requires a different equation, and would have to be rewritten to accomodate such a case.  In a situation where the parameters changed dynamically to switch between over- and under-damped systems, the traditional approach would be very difficult to implement.

Starting a new model

Table of Contents


Three planet problem

A problem well suited to analysis by Dynamo is the "three body" problem.  Given three gravitating bodies (planets) in an initial configuration in space (position and velocity with respect to a common origin), determine how these bodies move with respect to time.  This problem is sufficiently complicated that no analytic solution exists for the general problem.  Therefore, a simulation, as we will be developing with Dynamo, is one of the better solutions for this generalized problem.

Solving this problem will be done in the following steps:

Problem definition - Outlining the pertinent constants and equations.

Modeling - Translating the equations into a Dynamo model.

Testing - Determining appropriate timing parameters, and simulating  a "special case" for which the answer is known.

Starting a new model

Table of Contents


Problem definition

This problem will be framed in a three dimensional Cartesian coordinate system.  All  variables with a length component  (acceleration, velocity, position and force) are vectors referenced to a common origin.  The units used will be foot-slug-second.

The force (in pounds) between two gravitational bodies (planets) is [Eqn 1]:

where 	K = universal gravitational constant.

M = the mass of bodies i and j respectively, in slugs.

R = the distance between bodies i and j, in feet.

With these units:

The distance between any two planets is [Eqn 2]:

where D is the position of planet i, j with respect to the center origin.

By summing the forces, we can now obtain the total acceleration for a planet [Eqn 3]:

since there are no other forces acting on the planets (viscous friction, springs).  Velocity and position updates are obtained by simple integration of acceleration and velocity, respectively.

Three planet problem

Starting a new model

Table of Contents


Modeling

In the this phase, most of the work will involve breaking down the general purpose vector equations into separate equations for X, Y and Z, and recombining them as needed for some of the calculations.  Throughout this section, please refer to "3planet.cht" included with the original distribution files.

For the sake of illustration, the three bodies will be referred to as Venus, Mars and Pluto.  For all the blocks in 3planet.cht, the following naming scheme is employed (all names refer to the blocks output value):

Blocks that refer to a particular planet are labeled with either the name (Venus, Mars or Pluto), or a lower case letter (v, m or p).

Blocks that refer to a particular coordinate are labeled with either X, Y or Z.

Blocks that refer to a particular mass are labeled with M.

Position blocks are labeled with A (acceleration), V (velocity), P (position) or D (distance).  A, V and P are relative to the origin, while D is a distance between two planets.

Thus,

"Force vmX" is the force developed between Venus and Mars in the X direction.

"Venus VY" is the velocity of Venus in the Y direction.

"D vm" is the distance between Venus and Mars.

"Force pZ" is the total force acting on Pluto in the Z axis.

The first cluster of integrator blocks, and the divider blocks to their left, represent the three axes for Venus.  As can be seen, acceleration is integrated to obtain velocity, and velocity is integrated to obtain position.  The next group of summation blocks develops the differences in position between Venus and Mars, utilizing a -1 as the parameter for the Mars input.  Continuing to the right, the individual distances are squared and added to obtain the lower parameter in Eqn 1.  Finally, Force vm is the force generated between Venus and Mars.

The force between planets in the X axis is found by multiplying the overall force times the ratio of the X distance to the overall distance (Force vmX block).  The other forces are found in a similar fashion.  The sum of forces in each axis is then divided by the planets mass to obtain the acceleration component for that axis, thus completing the loop.

One of the issues to keep track of in this model is insuring that the signs for the forces developed, etc., are correct.  Since the final force acting on a planet is derived from a multiplication step involving the delta distance between two planets, we can use the sign associated with the delta distance to insure the force is acting in the correct direction.  If the delta distance derived by Mars - Venus is positive, then the force from this pair, on Mars, is pushing Mars in a negative direction.  By definition, the same force is pushing Venus in a positive direction.  Setting the appropriate parameter in blocks like Force vX (where the two forces are summed) to +1 or -1 controls if the forces are added or subtracted.

Three planet problem

Starting a new model

Table of Contents


Testing

With the three body problem, we can set the initial conditions to a special case for which we know the solution.  Such a configuration is a system consisting of three equal mass bodies located equally distant from each other, moving tangential to the circle that passes through the masses (see Figure 1).  With these special conditions, we can determine the initial velocity which would keep the planets at the same relative initial distance from each other.  In our model of this special case, all motions will take place only in the X-Y plane for purposes of simplicity.

To keep the three planets straight, we will call them Venus, Mars and Pluto.  In our test case, Venus  will be on the X axis, a nominal 10 million miles from X = 0 and Y = 0.  Mars will be 120 degrees counterclockwise from Venus, and the same 10 million miles from the origin, and Pluto will likewise be 120 degrees clockwise from Venus, with the same 10 million miles from the origin (see Figure 1).  As stated above, all the planets are assumed to have the same mass, 1.317 x 10^25 lbs., one earth mass.

In this configuration, the initial forces on Venus will be purely in the negative X direction, with the Y axis forces from Mars and Pluto canceling each other.  We can calculate this force in the manner mentioned above (see Figure 2).

Knowing this force, we can now calcluate the velocity which would exactly counteract this force:

Setting the initial velocity of all the planets to this value should keep them all at the same radius.

Now it is time to actually test the model against our predictions.  With the conditions we have specified, the time required for the planets to make one complete revolution is roughly 27 years, or 8.45x10^8 seconds.  Our initial simulation will be for 9x10^8 seconds (28 years), with 8x10^6 seconds for an output interval.

The graph labeled "Lissajous planets" shows that the planets return to their starting points after one complete revolution.  However, the graphs labeled "Interplanetary distances" and "Planetary velocities" illustrates that the planets seem to "breath", perhaps due a minor error in some of the initial conditions.

Three planet problem

Starting a new model

Table of Contents


pln3 Fig 1


pln3 Fig 2


Balancing broomstick problem

In this model, we will simulate the feat of balancing a broomstick vertically in your hand.  We will start off building the model in stages, and then introduce refinements as we continue.

Problem definition

Keeping the broomstick vertical

Maintaining Position

Starting a new model

Table of Contents


Problem definition

In Figure 1, we define the basic model and some of the terms.  The length of the broomstick is L, and the initial angle is A.  The tilting force on the broomstick is shown as Fy, resulting from the center of mass being pulled down by gravity.  The restoring force results from a, the acceleration applied horizontally at the bottom of the broomstick, and the reaction force Fx.  In this problem, we only have one degree freedom, the rotation of the broomstick about its support point.  Some additional simplifying assumptions are the "hand" moves strictly in the X axis, the broomstick can rotate only in the X-Y axis, and the bottom of the broomstick is rotationally secured to the hand.  For this rotational axis, torque is equivalent to force, and the equivalent inertia for the broomstick about it's bottom point is:

where

M = total mass of the cylinder

R = radius of the cylinder

L = length of the cylinder

The F = m*a equation is replaced by T = I*Alpha; torque = rotational inertia times angular acceleration.  Once the total torque is calculated, this divided by the rotational inertia provides the angular acceleration.  Integrating the angular acceleration provides the angular velocity, and another integration provides the current angle.

The "falling" torque is Fy (mass of the broomstick times gravity) times the distance (X axis) from the support point, L/2*sin(A).  The "restoring" torque is the reaction Fx from the applied acceleration a, times the distance (Y axis) from the support point, L/2*cos(A).  Implementation of all these formulae is shown in BroomA.cht.

Broomstick

Starting a new model

Table of Contents


brm fig1


Keeping the broomstick vertical

In BroomA.cht, we develop the basic parameters needed, and the initial feedback mechanism for keeping the broomstick vertical.

In the blocks in the lower left quadrant of the chart, we develop the broomstick's mass and inertia from it's density, radius and length.  The upper half of the model is the "control loop" for the broomstick.  Tilt Trq is the torque from the broomstick causing it to tilt more once it is off center.  Pos FdBk and Vel FdBk provide a correction factor based on the broomstick's current angular position and velocity, respectively.  These are summed in Totl FdBk, the equivalent linear acceleration applied at the base of the broomstick.  This is then multiplied by the broomstick's geometry, resulting in Rst Trq, the restoring torque.  The two torques are summed and divided by the broomstick's inertia to obtain the broomstick's angular acceleration.  This acceleration is integrated to provide angular velocity, which is again integrated to provide angular position.

As can be seen in the Angular Respnse view, with the parameters currently chosen, the broomstick gradually approaches vertical stability in a classic under damped mode.  Now change the length of the broomstick from 70 inches to 7 inches by altering the Parameter in the Constant block labeled L.  Activate the Run command, bring the Angular Response window to the top,  and notice that the broomstick settles out without any overshoot.

Broomstick

Starting a new model

Table of Contents


Maintaining Position

A problem with the model at this point is the "hand" holding the broomstick wanders away from the origin.  In BroomB.cht, we double integrate the acceleration (Totl FdBk) to obtain the velocity and position of the hand, and plot it with the broomstick angle.  As can be seen from the Hand Position/Velocity graph, the hand is traveling at a finite velocity away from the origin.

To correct this problem, additional feedback of the hand position is included.  The further the hand is away from 0, the "desired" angular position of the broomstick is offset towards the origin. This is accomplished by changing the Pos FdBk  block from a Gain block to a Sum block, taking the Hand Pos output and feeding this into the second input of the Pos FdBk block to offset the desired angular position of the rod.  This also allows the Angle and Hand Pos to have different gains.  This process is repeated with the Hand Velocity to provide damping for this mechanism.  This is shown in BroomC.cht, with the corresponding correction of the hand position.

Now would be a good time to modify some of the parameters included with BroomC.cht, and study the different reactions.  You are also encouraged to develop a different feedback scheme(s) to get the system to behave "better" (bring the absolute of Hand Pos back to zero).

Broomstick

Starting a new model

Table of Contents


Registration/Feedback

Dynamo is released as Shareware, so feel free to copy/disseminate Dynamo.zip as widely as possible.

As with most shareware, there are incentives offered for registering the product.  Dynamo has a three tier approach as follows:

Shareware

Registered

Full Rights

There are several convenient methods for registering your product.

To make sure you have the latest version of Dynamo, please visit our web site at www.eXpectation.com.

This program is produced by a member of the Association of Shareware Professionals (ASP). ASP wants to make sure that the shareware principle works for you. If you are unable to resolve a shareware-related problem with an ASP member by contacting the member directly, ASP may be able to help. The ASP Ombudsman can help you resolve a dispute or problem with an ASP member, but does not provide technical support for members' products. Please write to the ASP Ombudsman at:

545 Grover Road

Muskegon, MI 49442-9427

USA

FAX 616-788-2765

or send an email message to ASP Ombudsman, 70007.3536@Compuserve.com.

File List

User Name

Register

Save Failure

Legal Stuff

Table of Contents


Shareware

Dynamo is usable as is, without any registration required.  The only drawback is that models containing more than 25 blocks can not be saved.  Larger models can be built and/or loaded (such as the included three planet demonstration), but cannot be saved for later use.  This should be more than sufficient for playing around with the program, preliminary learning, and deciding if it is of any interest.

Registered mode

Full Rights mode

Registration/Feedback

Table of Contents


Registered

For the grand sum of $0.00, Dynamo can be registered in Registered Mode.  The benefits from this mode include:

•	Raising the save blocks limit to 50.  This limit should allow most users to accomplish useful analyses as required by work or hobbies.

•	Automatic notification of upgrades available

•	Automatic pre-registration for future revisions

The release revision is 1.01.  As minor revisions are made, the revision level will continue to be 1.xx.  As long as the revision level is 1.xx, the same password will work.  When a major revision is released (2.xx, etc.), then a new password is required.  If you are registered in Registered mode, you will receive your new Registered password along with notification of the availability of the new release

•	All suggestions will be taken seriously concerning future direction (which future features are most desired)

This limit should allow most users to accomplish useful analyses as required by work or hobbies.

Please continue here to learn about Full Rights mode, and here to register your software.

Registration/Feedback

Table of Contents


Full Rights

For the sum of $65.00, Dynamo can be registered in Full Rights mode.  The benefits from this mode include:

•	All restrictions on model size saving are removed.  The program is fully functional.

•	Any bugs reported (with offending chart and adequate description) will be fixed within one week of receipt.

•	Time permitting, the author will lend any assistance required in generating an appropriate model for a particular problem.

•	Automatic notification of upgrades available.

•	Automatic registration for the next full upgrade.

The release revision is 1.01.  As minor revisions are made, the revision level will continue to be 1.xx.  As long as the revision level is 1.xx, the same password will work.  When a major revision is released (2.xx, etc.), then a new password is required.  If you are registered in Full Rights mode, you will receive your new Registered password along with notification of the availability of the new release.  After the third revision, you will receive future revisions for a very modest upgrade fee.

Please continue here to register your software.

Registration/Feedback

Table of Contents


Registration Process

When registering Dynamo, regardless of the mode desired, the MOST important task is to email us (register@expectation.com) with the current User Name from Dynamo (accessible from the About box).  The critical information received by this process is a means of reaching you (your email address).  Without some means of responding to you, the whole process breaks down.  For example, if you indicate that you are in the process of registering in Full Rights mode through one of the avenues outlined below, and we don't hear from you after a few days, we will send a follow-up note in case something went awry with the process.

You can also register by accessing our web page at www.expectation.com.  The only drawback is that a typo in entering your email address can disrupt the communications process.

 If you do not wish to conduct this process over the internet, then communicate by mailing the information to:

Tom Wiseley

eXpectation software

22 Summit Avenue

Salem, MA 01970

If you are registering in Registered mode, then the above tasks are sufficient.  However, if you desire Full Rights mode, then continue with one of the following choices:

•	Credit card (MasterCard, Visa, Discover)

•	Check

•	Compuserve SWREG

Within 48 hours of submitting your registration (slightly longer if done by snail mail), you will receive an email repeating the User Name you supplied, and a 4-digit numeric password.  If this does not happen, please email us again (register@expectation.com), and we will immediately follow up and resolve the problem.

After you have received a password from eXpectation software, follow here for instructions to register your copy of Dynamo.

Registration/Feedback

Table of Contents


Credit Card Registration

To process credit card orders, we utilize PsL, a leader in software distribution.  As a bonus for ordering Dynamo through their service, you can receive the PsL Shareware CD_ROM (normally $30 plus shipping) for just $6 (plus shipping) with a full money-back satisfaction guarantee.  This is an above average bargain, and the best way to get thousands of the latest freeware and shareware programs available for home and office.  You can learn more about their CD-ROM offer through links from our web site (www.expectation.com).

To register Dynamo in Full Rights mode with your credit card, choose one of the following the methods:

•	Through the Web

•	Via FAX

•	Via the telephone

Registration Process

Registration/Feedback

Table of Contents


The web

The safest way to process a credit card order over the internet is through a secure web site.  PsL has a secure web site (as well as non-secure if your browser does not support this feature).  The easiest way to reach them is again through our web site (www.expectation.com).

You can also email PsL the particulars from your credit card (brand, number, expiration date, mailing address, name [exactly as it is spelled on the card]) to15425@pslweb.com.  Be sure to include the User Name from your copy of Dynamo.

Credit Card Registration

Registration Process

Registration/Feedback


FAX

You may FAX your credit card order to PsL at 713-524-6398.  Include the usual information from your credit card (brand, number, expiration date, name [exactly as it appears on your card]), ask for product #15425 (Dynamo), your User Name, and a means of getting in touch with you (email address or snail mail address).  Please type or block print very plainly, as garbled faxes will not be processed.

Credit Card Registration

Registration Process

Registration/Feedback


The phone

PsL's operators are available from 8:00 a.m. to 6:00 p.m. CST Monday-Friday at 800-242-4775 Ext.15425 or at 713-524-6394 Ext.15425 .

THE ABOVE NUMBERS ARE FOR CREDIT CARD ORDERS ONLY.  WE CANNOT BE REACHED AT THESE NUMBERS.

Any questions about the status of the shipment of the order, refunds, registration options, product details, technical support, volume discounts, dealer pricing, site licenses, non-credit card orders, etc, must be directed to support@expectation.com, or:

Tom Wiseley

eXpecation software

22 Summit Avenue

Salem, MA 011970

Credit Card Registration

Registration Process

Registration/Feedback


Check Registration

To pay by check, send $65 (US funds) to:

Tom Wiseley

eXpecation software

22 Summit Avenue

Salem, MA 01970

Include the User Name from your copy of Dynamo, and a means of contacting you (snail mail or email address).

Registration Process

Registration/Feedback

Table of Contents


Compuserve SWREG Registration

If you have access to a Compuserve account, you may utilize the software registration procedure.  Within Compuserve, GO SWREG, and follow the instructions on your screen.  The registration ID for Dynamo is 16224.  The $65 fee will be charged to your Compuserve account.  This process does not allow a chance to enter the User Name from your copy of Dynamo, so this MUST be emailed to register@expectation.com or mailed to:

Tom Wiseley

eXpectation software

22 Summit Avenue

Salem, MA 01970

Registration Process

Registration/Feedback

Table of Contents


Registration Implementation

Once you have received your password from eXpecation software, the following process will allow you to register your copy of Dynamo.

Acces the About box by either pressing the [image] from the main tooolbar, or Help|About from the menu.  The About box will display, among other things, your current User Name and Registration Status. In our response message, we will have included the User Name supplied as part of the registration process.  These MUST match (case sensitive).  If they do not, please contact us immediately at support@expectation.com or:

Tom Wiseley

eXpectation software

22 Summit Avenue

Salem, MA 01970

If they do match, press the Register button, and the Register dialog will appear.  Type in your supplied 4-digit password, and press OK.  Access the About box again (as above), and your new Registration Status should be displayed, either Registered or Full Rights.  If this is not the case, please contact us immediately by the methods shown above.


User Name

This dialog activates when first running Dynamo.  To continue operation of the program, a name must be entered and either OK or Register buttons pushed.

Registration/Feedback

Table of Contents


User Name Box
Enter your user name here.  Required to continue with the program.


File List

The following is a list of files included in Dynamo.zip.

Readme.txt

Dynamo.exe

Dynamo.hlp

3planet.cht

BroomA.cht

BroomB.cht

BroomC.cht

CosInt.cht

ScndOrdr.cht

Registration/Feedback

Table of Contents


Register

To access certain features within Dynamo, a password is required.  To obtain a password, send your User Name (from the About box) as outlined in the registration procedure.  Once you have obtained your password, type it into the edit field, and hit Enter or the OK button.  By accessing the About box again, you can check your current registration level.

This dialog is accessed through the About box.

Registration/Feedback

Table of Contents


Register Password
Enter author supplied password here.


Save Failure

There are certain restrictions placed on your use of Dynamo as a function of your registration level.  These restrictions take the form of limiting the size of model which can be saved.  For the Shareware level, models of greater than 25 blocks cannot be saved.  For the Registered level, models of greater than 50 blocks cannot be saved.  If either is attempted, one of the following dialogs will appear, based on your registration level.

Shareware Level

Registered Level

Registration/Feedback

Table of Contents


Valid Info
Contains your current registration level, the number of blocks allowed to be saved at that level, and the number of blocks you were trying to save


Legal Stuff

DEFINITION OF SHAREWARE

Shareware distribution gives users a chance to try software before buying it.  If you try a Shareware program and continue using it, you are expected to register. With Dynamo, registration brings enhanced functionality and support, as listed above.

Copyright laws apply to both Shareware and commercial software, and the copyright holder retains all rights, with a few specific exceptions as stated below.  Shareware authors are accomplished programmers, just like commercial authors, and the programs are of comparable quality.  (In both cases, there are good programs and bad ones!)  The main difference is in the method of distribution.  The author specifically grants the right to copy and distribute the software, either to all and sundry or to a specific group.  For example, some authors require written permission before a commercial disk vendor may copy their Shareware.

Shareware is a distribution method, not a type of software.  You should find software that suits your needs and pocketbook, whether it's commercial or Shareware.  The Shareware system makes fitting your needs easier, because you can try before you buy.  And because the overhead is low, prices are low also.  Shareware has the ultimate money-back guarantee -- if you don't use the product, you don't pay for it.

DISCLAIMER - AGREEMENT

Users of Dynamo must accept this disclaimer of warranty: Dynamo is supplied as is.  The author disclaims all warranties, expressed or implied, including, without limitation, the warranties of merchantability and of fitness for any purpose. The author assumes no liability for damages, direct or consequential, which may result from the use of Dynamo.

Dynamo is a "shareware program" and is provided at no charge to the user for evaluation.  Feel free to share it with your friends, but please do not give it away altered or as part of another system.  The essence of "user-supported" software is to provide personal computer users with quality software without high prices, and yet to provide incentive for programmers to continue to develop new products.  If you find this program useful and find that you are using Dynamo and continue to useDynamo after a reasonable trial period, you must register with eXpectation software as stated above.  The  registration will license one copy for use on any one computer at any one time.  You must treat this software just like a book.  An example is that this software may be used by any number of people and may be freely moved from one computer location to another, so long as there is no possibility of it being used at one location while it's being used at another.  Just as a book cannot be read by two different persons at the same time.

Commercial users of Dynamo must register and pay for their copies of Dynamo within 30 days of first use or their license is withdrawn.  Site-License arrangements may be made by contacting eXpectation software.

Anyone distributing Dynamo for any kind of remuneration must first contact eXpectation software at the address above for authorization. This authorization will be automatically granted to distributors recognized by the (ASP) as adhering to its guidelines for shareware distributors, and such distributors may begin offering Dynamo immediately.  (However eXpectation software must still be advised so that the distributor can be kept up-to-date with the latest version of Dynamo.).

You are encouraged to pass a copy of Dynamo along to your friends for evaluation.  Please encourage them to register their copy if they find that they can use it.  All registered users will receive the benefits stated above.

Registration/Feedback

Table of Contents


Commands

File	Open, close, save files; print, print preview; other documents; exit.

Edit	Cut, copy, paste.

View	Display the tool bar, status bar, and various button bars.

Options	Run a simulation, open additional views to the document.

Window	Rearrange windows, icons; select other open windows.

Help	Access help and other program information.

Table of Contents


File

The File menu offers the following commands:

New	Creates a new document.

Open	Opens an existing document.

Close	Closes an opened document.

Save	Saves an opened document using the same file name.

Save As	Saves an opened document to a specified file name.

Print	Prints a document.

Print to File	Prints a List document to a disk file.

Print Preview	Displays the document on the screen as it would appear printed.

Print Setup	Selects a printer and printer connection.

Exit	Exits Dynamo.

Commands

Table of Contents


New

Use this command to create a new document in Dynamo.

You can open an existing document with the Open command.

Shortcuts

Toolbar:

Keys:	CTRL+N

File

Commands

Table of Contents


Open

Use this command to open an existing document in a new window.  You can open multiple documents at once.  Use the Window menu to switch among the multiple open documents.  See Window 1, 2, .. . command.  Create new documents with the New command.

A file may also be opened directly from the command line by typing something similar to:

Dynamo mychart.cht

Shortcuts

Toolbar:

Keys:	CTRL+O

File

Commands

Table of Contents


Close

Use this command to close all windows containing the active document. Dynamo suggests that you save changes to your document before you close it, if required.  If you close a document without saving, you lose all changes made since the last time you saved it.  Before closing an untitled document, Dynamo displays the Save As dialog box and suggests that you name and save the document.

Shortcut

Toolbar:

File

Commands

Table of Contents


Save

Use this command to save the active document to its current name and directory.  When you save a document for the first time, Dynamo displays the Save As dialog box so you can name your document.  If you want to change the name and directory of an existing document before you save it, choose the Save As command.

Shortcuts

Toolbar:

Keys:	CTRL+S

File

Commands

Table of Contents


Save As

Use this command to save and name the active document.  Dynamo displays the Save As dialog box so you can name your document.

To save a document with its existing name and directory, use the Save command.

File

Commands

Table of Contents


Print

Use this command to print a document.   This command presents a Print dialog box, where you may specify the range of pages to be printed, the number of copies, the destination printer, and other printer setup options.  When printing charts and list boxes, the size is as shown based on spacing parameters (for charts) and font size (for list boxes).  When printing graphs, a graph will fill the top half of the page in portrait mode, and the entire page in landscape mode.

Shortcuts

Toolbar:

Keys:	CTRL+P

All of the charts can be displayed in some form of color.  Most printers, however, are still black and white.  Since the translation from color to black and white is uneven for many drivers, Dynamo has a switch for always printing views in black and white, thus assuring a more uniform approach to printed documentation.  This switch is located in the Options|Preferences section of the menu.

The Chart and List windows are capable of generating multi-page documents.  For print-outs greater than one page, the pages are numbered similar to spreadsheet cells.  In printing a large model, for example, page 3D would be located in the third row and fourth column.

File

Commands

Table of Contents


Print to File

Available only for List views, this allows saving the data displayed in the current List view in a tab delimited format disk file suitable for input by most spreadsheet programs.

File

Commands

Table of Contents


Print Preview

Use this command to display the active document as it would appear when printed.  When you choose this command, the main window will be replaced with a print preview window in which one or two pages will be displayed in their printed format.  The print preview tool bar offers you options to view either one or two pages at a time; move back and forth through the document; zoom in and out of pages; and initiate a print job.

Please see Print for color options and page numbering information.

Shortcuts

        Toolbar

File

Commands

Table of Contents


Print Setup

Use this command to select a printer and a printer connection.  This command presents a Print Setup dialog box, where you specify the printer and its connection.

File

Commands

Table of Contents


1, 2, 3, 4

Use the numbers and filenames listed at the bottom of the File menu to open the last four documents you closed.  Choose the number that corresponds with the document you want to open.

File

Commands

Table of Contents


Exit

Use this command to end your Dynamo session.  You can also use the Close command on the application Control menu.  Dynamo prompts you to save documents with unsaved changes.

Shortcuts

Keys:	ALT+F4

File

Commands

Table of Contents


Edit

The Edit menu offers the following commands:

Cut	Deletes data from the document and moves it to the clipboard.

Copy	Copies data from the document to the clipboard.

Paste	Pastes data from the clipboard into the document.

Delete	Deletes data from the document without moving it to the clipboard.

These commands make use of a special Dynamo clipboard, not the Windows clipboard, for storing and retrieving block information.

Commands

Table of Contents


Cut

Use this command to remove the currently selected block from the document and put it on the Dynamo clipboard.  This command is unavailable if there is no block currently selected.  To select a block, right click it with the mouse.

Cutting the block to the clipboard replaces the contents previously stored there.

Shortcuts

Tool bar:

Keys:	CTRL+X

Edit

Commands

Table of Contents


Copy

Use this command to copy the selected block onto the Dynamo clipboard .  This command is unavailable if there is no block currently selected.  To select a block, right click it with the mouse.

Copying the block to the Dynamo clipboard replaces the contents previously stored there.

Shortcuts

Tool bar:

Keys:	CTRL+C

Edit

Commands

Table of Contents


Paste

Use this command to insert a copy of the Dynamo clipboard contents at the insertion point.  This command is unavailable if the clipboard is empty.

Shortcuts

Tool bar:

Keys:	CTRL+V

Edit

Commands

Table of Contents


Delete

Use this command to remove the currently selected block from the document.  This command is unavailable if there is no block currently selected.  To select a block, right click it with the mouse.

The keyboard shortcut for this command is the "Delete" key.

Edit

Commands

Table of Contents


View

The View menu shows or hides the various tool bars and other control elements.  If the particular toolbar is visible/activated, there will be check mark next to the menu selection.  Clicking on the menu selection will display/hide the selected toolbar.

Tool bar	The main tool bar, containing "generic" windows commands.

Status bar	The status bar at the bottom of the window.

Display	The Display tool bar, governing views and model actuation.

Math	The Math tool bar, containing conventional math operations.

Transcendental	The Transcendental tool bar, containing trigonometric and other functions.

Time	The Time tool bar, containing time sensitive blocks.

Logic	The Logic tool bar, containing blocks performing typical logical operations.

Generators	The Generators tool bar, containing blocks which generate data to be used for input into other blocks.

Non-linear	The Non-linear tool bar, containing blocks simulating NonlInear functions.

Miscellaneous	The Miscellaneous tool bar.

Commands

Table of Contents


Toolbar

Tool bar

Use this command to display and hide the Tool bar, which includes buttons for some of the most common commands in Dynamo, such as File Open.  A check mark appears next to the menu item when the Toolbar is displayed.

The toolbar is displayed across the top of the application window, below the menu bar.  The toolbar provides quick mouse access to many tools used in Dynamo,

To hide or display the Toolbar, choose Toolbar from the View menu (ALT, V, T).

Click	To

Open a new document.

Open an existing document.  Dynamo displays the Open dialog box, in which you can locate and open the desired file.

Savee the active simulation with its current name.  If you have not named the document, Dynamo displays the Save As dialog box.

Remove the selected block from the document and store it on the Dynamo clipboard.

Copy the selected block to the Dynamo clipboard.

Activate the placement cursor, and place the block in the Dynamo clipboard as required

Print the active document.

Activates the About Dynamo dialog box.

Use  Context Help to obtain help on the buttons and commands of Dynamo. When you choose the Toolbar's Context Help button, the mouse pointer will change to an arrow and question mark.  Then click on either one of the buttons, or a menu selection.  The Help topic will be shown for the item you clicked.  Shortcut key:	SHIFT+F1

View

Commands

Table of Contents


Status Bar

Use this command to display and hide the Status Bar, which describes the action to be executed by the selected menu item or depressed tool bar button, and keyboard latch state. A check mark appears next to the menu item when the Status Bar is displayed.

C

The status bar is displayed at the bottom of the Dynamo window.  To display or hide the status bar, use the Status Bar command in the View menu.

The left area of the status bar describes actions of menu items as you use the arrow keys to navigate through menus.  This area similarly shows messages that describe the actions of the tool bar button currently under the cursor.

The right areas of the status bar indicate which of the following keys are latched down:

Indicator	Description

CAP	The Caps Lock key is latched down.

NUM	The Num Lock key is latched down.

SCRL	The Scroll Lock key is latched down.

View

Commands

Table of Contents


Options

Provides for a variety of model and viewing options, as well as activating the model simulation.  The following are accessible either from the menu or the Display tool bar.

Viewing

Run

Initialize

Chart

List

Graph

Preferences

Commands

Table of Contents


Viewing

Allows modification of the active view.

Chart	Allows modification of the currently active Chart view.

List	Allows modification of the currently active List view.

Graph	Allows modification of the currently active Graph view.

Options

Commands

Table of Contents


Chart, Viewing Modifications

This dialog box allows modification of the appearance of the chart displaying the current model.  Different charts of the same model may have different viewing parameters.  Additional information is also available for the Sizing Factors.

Viewing

Options


Sizing Factors

In dealing with the appearance of your model on the screen or printed page, it is important to understand the difference between model size and viewing size.  The model size is effectively infinite, allowing up to 4.3 million rows and columns of blocks.  The viewing size controls how much of this potential model space is viewable within a given window.  Most variables available in this dialog box  (connector line spacing parameters, holding block size) have units of pixels, where, on the printed page, roughly 100 pixels equal one inch.

The one "sizing" factor which is always automatic, and therefor not included as a choice in the dialog box, is the spacing between blocks.  The system automatically calculates the spacing required, determined by the current settings from the dialog box, and displays the view accordingly.  Thus, all else being equal, a much denser model will be displayed with Display/Name and Display/Value inactivated, than if both displays are activated.

The Sizing Factors block of controls influence the magnification and size of the viewing image, including both the overall image as well as individual elements within the model.  Some of the sizing elements happen automatically, i.e., if the size of the button on the display screen is changed (MagF), then the spacing between buttons (both horizontally and vertically) is increased to allow space for the connection lines between buttons to be drawn.

The following illustrates the relationships involved when Sizing Lock is enabled.  Remember that they all affect the spacing between blocks:

Change	Affected

MagF	All Connector Line Spacing parameters

Display Font

Notes Font

Holding Blocks Size

Connector Line Delta Vertical	Connector Line Spacing Total Vertical

Connector Line Delta Horizontal	Connector Line Spacing Total Horizontal

Connector Line Width	Connector Line Spacing Total, Vertical and Horizontal

While changing Sizing Factors with Sizing Lock enabled, the following may occur:

As some of the variables are changed, the Connector Line Spacing Total numbers may increase.  If later changes would allow the Connector Line Spacing to decrease, this will not happen automatically.  To determine the current "minimum" allowed by Dynamo for the current settings, set either Connector Line Spacing block to 1, and move the focus elsewhere.  The resulting value in the block will be the minimum, which can be manually increased if desired.

Chart, Viewing Modifications

Viewing

Options

Commands


Main View, Title
Allows specifying a title for the current window.


Main View, Color Display
Displays the current view in color.


Main View, B/W Display
Displays the current view in black and white.


Main View, Notes
Allows adding notes specific to this view.


Main View, Notes Display
Displays the notes (if any) at the top of the chart.


Main View, Notes Font
Allows modification of the notes font and color.


Main View, Holding Size
Specifies the size of the holding blocks used to indicate open areas where additional blocks may be added.


Main View, Holding Color
Specifies the color of the holding blocks.


Main View, Holding Display
Determines whether the holding blocks are displayed.  They are never "printed".


Main View, Size Lock
Allows modification of most of the viewing variables in synchronization with the magnifying factor.


Main View, Magnification
Increases the magnification or relative size of the blocks.  If Size Lock is activated, the rest of the view is scaled proportionally.


Main View, Vertical Lines, Total
The total width taken by vertical lines.  Dynamo will calculate a minimum based on vertical line count, line width and spacing between vertical lines.  This number may be set larger to increase the spacing between blocks.


Main View, Vertical Lines, Delta
The spacing, in pixels, between vertical lines.


Main View, Horizontal Lines, Delta
The spacing, in pixels, between horizontal lines.


Main View, Horizontal Lines, Total
The total width taken by horizontal lines.  Dynamo will calculate a minimum based on horizontal line count, line width and spacing between horizontal lines.  This number may be set larger to increase the spacing between blocks.


Main View, Line Width
The width of the lines used for interconnecting the blocks.  Blank or 0 is the same as 1.


Main View, Name Display
Allows display of the block names below the blocks.


Main View, Value Display
Allows display of the current block values above the blocks.


Main View, Name/Value Font
Allows modification of the Name/Value font and color.


List, Viewing Modifications

This dialog box allows modification of the appearance of the list box displaying the current simulation results.  Different list boxes of the same model may have different viewing parameters.

Viewing

Options


List Display
Lists all of the blocks currently being displayed.  The topmost block is always on the left side of the display.


List Available
List all blocks in the model that are not currently displayed.


List Add
Transfers blocks highlighted in the Available column to the Display column.


List Subtract
Transfers blocks highlighted in the Display column to the Available column.


List Font
Controls the font used for display of the numbers.


List Title
Sets the frame title for this view.  If this is empty, the Windows default is used.


List Precision
The number of digits following the decimal point.


List Extra
Allows addition of extra blank spaces between the columns


List Notes
Allows miscellaneous notes to be added and optionally viewed


List Notes Display
Allows viewing of the notes in the List window


List Notes Font
Control the font of the Notes when viewed in the List window


Graph, X Axis

This dialog box allows modifying the display parameters for the current graph.

Viewing

Options


Graph, First Y Axis

This dialog box allows modifying the display parameters for the current graph.

Viewing

Options


Graph, Second Y Axis

This dialog box allows modifying the display parameters for the current graph.

Viewing

Options


Graph, Third Y Axis

This dialog box allows modifying the display parameters for the current graph.

Viewing

Options


Graph, Miscellaneous

This dialog box allows modifying the display parameters for the current graph.

Viewing

Options


Graph Jumps


Graph, XGrid, Horizontal
Draws horizontal grid lines on the graph in line with primary Y axis (left hand side) tick marks


Graph, XGrid, None
Only tick marks will be displayed on the graph


Graph, XGrid, Vertical
Draws vertical grid lines on the graph in line with the X axis tick marks


Graph, XGrid, Both
Draws horizontal grid lines on the graph in line with the primary Y axis (left hand side) tick marks, and vertical grid lines in line with the X axis tick marks


Graph, X, Width
Controls the thickness of the X and Y axes, and the tick marks/grid lines.  Zero and one are identical for the thinnest available line.


Graph, X, Low
When Fixed is checked, sets the low limit for the X axis.  If this value is equal to or greater than High, then the Fixed check box is ignored, and the limits are set automatically by Dynamo.  If Fixed is not checked, this box reflects the current low limit as determined by Dynamo.


Graph, X, High
When Fixed is checked, sets the high limit for the X axis.  If this value is equal to or less than Low, then the Fixed check box is ignored, and the limits are set automatically by Dynamo.  If Fixed is not checked, this box reflects the current high limit as determined by Dynamo.


Graph, X, Fixed
When checked, utilizes the values in Low and High as the limits for the X axis.  If Low is greater than or equal to High, then Fixed is ignored, and Dynamo will set the limits automatically.


Graph, X, Source
A pull down list box which lists all Active mode blocks available for the X axis.  Clock (time) is the default, but any block can be chosen.


Graph, X, Color
Choose the color for the X and Y axes and tick marks/grid lines, as well as the X axis label and legend color.  The default is black.


Graph, 1, Left
Puts the labels and tick marks for the first graph on the left side (default)


Graph, 1, Right
Puts the labels and tick marks for the first graph on the right side


Graph, N, Width
Controls the thickness of the plot for this graph.  Zero and one are identical for the thinnest available line.


Graph, N, Low
When Fixed is checked, sets the low limit for this graph's Y axis.  If this value is equal to or greater than High, then the Fixed check box is ignored, and the limits are set automatically by Dynamo.  If Fixed is not checked, this box reflects the current low limit as determined by Dynamo.


Graph, N, High
When Fixed is checked, sets the high limit for this graph's Y axis.  If this value is equal to or less than Low, then the Fixed check box is ignored, and the limits are set automatically by Dynamo.  If Fixed is not checked, this box reflects the current high limit as determined by Dynamo.


Graph, N, Fixed
When checked, utilizes the values in Low and High as the limits for this graph's Y axis.  If Low is greater than or equal to High, then Fixed is ignored, and Dynamo will set the limits automatically.


Graph, N, Color
Choose the color for this graph, as well as the label and legend color


Graph, 1, Selection
A pull down list box which lists all Active mode blocks available for this graph


Graph, 1, Clear
Clears the current choice for graph 1.  When this occurs, the choice for graph 2 is automatically downloaded, as are the High, Low and Fixed values.  [If a choice for graph 3 exists, this is automatically downloaded into graph 2, as above.]  If this button is dimmed, then graph 2 does not have a choice (there must always be at least one graph chosen).


Graph, 2, Preference
If the tick count for graph 2 is the same as for graph 1, then the labels for graph 2 will be on the same side as graph 1.  Otherwise, the labels for graph 2 will be on the other side.


Graph, 2, With
The labels for graph 2 will always be on the same side as the labels for graph 1.


Graph, 2, Opposite
The labels for graph 2 will always be on the opposite side of the labels for graph 1


Graph, 2, Selection
A pull down list box which lists all Active mode blocks available for this graph


Graph, 2, Clear
Clears the current choice for graph 2.  When this occurs, the choice for graph 3 (if available) is automatically downloaded, as are the High, Low and Fixed values.


Graph, 3, Preference
If the tick count for graph 3 is the same as for graph 1, then the labels for graph 3 will be on the same side as graph 1.  If the tick count for graph 3 is the same as for graph 2, then the labels for graph 3 will be on the same side as graph 2.  If neither is a match, then the labels for graph 3 will be on the same side as graph 1.


Graph, 3, With 1
The labels for graph 3 will be on the same side as the labels for graph 1


Graph, 3, With 2
The labels for graph 3 will be on the same side as the labels for graph 2


Graph, 3, Selection
A pull down list box which lists all Active mode blocks available for this graph.  If this control is dimmed, then a choice needs to be made for graph 2 before graph 3 can be chosen.


Graph, 3, Clear
Clears the current choice for graph 2


Graph, Misc, Title
Allows specifying a title for the current window.


Graph, Misc, Legend Font
Allows specification of the font for the graph's legends


Graph, Misc, Label Font
Allows specification of the font the graphs labels


Graph, Misc, Notes
Allows adding notes specific to this view.


Graph, Misc, Notes Font
Allows modification of the notes font and color.


Graph, Misc, Notes Display
Displays the notes (if any) at the top of the chart.


Common Buttons


Dialog OK
Accepts any changes that have been made.


Dialog Cancel
Ignores any changes which may have been made, and returns to the original state.


Dialog Help
Activates the current help screen


Dialog Update
Save the current settings displayed in the dialog box to the Dynamo.ini file, making these settings default for any new windows.


Dialog Recall
Recall's the settings currently stored in Dynamo.ini and displays them in the dialog box.  If Dynamo.ini cannot be found, then generates the factory default settings (same as clicking on the Reset button).


Dialog Reset
Updates all dialog box parameters with the factory defaults.


Dialog Apply
Applies all current changes within the dialog box to the current view.


Run

Begins execution of the current model from time 0.  If required, sorts the model, and checks that all required inputs are met.  The run window is generated, displaying the current simulation time.  The simulation may be aborted by left-clicking in the run window.  Once completed, the run window is closed, and the simulation data may be viewed, etc.

NOTE:  The data, if any, from a previous simulation will be overwritten.  If it is desired to save the current data set, then the Save or Save As command should be invoked.

Options

Commands

Table of Contents


Initialize

Performs the initialization function normally done at the start of a Run command.  If required, sorts the model, and checks that all required inputs are met.  This command is primarily useful for examining the results from a series of Initialize blocks without running the entire simulation.

NOTE:  The data, if any, from a previous simulation will be overwritten.  If it is desired to save the current data set, then the Save or Save As command should be invoked.

Options

Commands

Table of Contents


Chart

Generates a new view of the current model utilizing the default display parameters.  To modify the parameters for the new display, press the Viewing button while this display is active.

Options

Commands

Table of Contents


List

Provides a list view for all of the active blocks with default parameters.  The respective values are displayed for each output interval.  To modify the parameters for the new display, press the Viewing button while this display is active.

Options

Commands

Table of Contents


Graph

Generates a new graph view for the simulation data.  Any of the active blocks may be used for the X axis, and up to three blocks may be graphed together, with their respective axes on either side of the graph.  The graph initially needs to be setup utilizing the Viewing button while this graph is active.

Options

Commands

Table of Contents


Preferences

The following dialog box allows setting a variety of options for the current model.

Options

Commands

Table of Contents


MDL Connector Line Count
Determines the maximum number of connection lines allowed between the blocks in a Chart view


MDL Max Sort
Determines the maximum number of iterations the sorting algorithm will utilize to properly arrange the blocks for a simulation


MDL Integration Style
Determines the integration style to be used with this model


MDL Always print B/W
If checked, all view are always printed in black and white


MDL Title
An optional title for naming the document, default is the file name


MDL Max Steps
Set the maximum number of sub-steps (when using an Integrate block) allowed within an output interval.  Further explained in the Theory/Integration section.


Window

The Window menu offers the following commands, which enable you to arrange multiple views of multiple documents in the application window:

Cascade	Arranges windows in an overlapped fashion.

Tile	Arranges windows in non-overlapped tiles.

Arrange Icons	Arranges icons of closed windows.

Split	Split the active window into panes.

Window 1, 2, ...	Goes to specified window.

Commands

Table of Contents


Cascade

Use this command to arrange multiple opened windows in an overlapped fashion.

Window

Commands

Table of Contents


Tile

Use this command to arrange multiple opened windows in a non-overlapped fashion.

Window

Commands

Table of Contents


Arrange Icons

Use this command to arrange the icons for minimized windows at the bottom of the main window.  If there is an open document window at the bottom of the main window, then some or all of the icons may not be visible because they will be underneath this document window.

Window

Commands

Table of Contents


Split

Use this command to split the active window into panes.  Only the Chart and List windows have the split option.  You may then use the mouse or the keyboard arrows to move the splitter bars.  When you are finished, press the mouse button or return to leave the splitter bars in their new location.  Pressing escape keeps the splitter bars in their original location.

If Save is implemented with split windows active, the splits will show up as individual windows when the model is Opened.

Window

Commands

Table of Contents


1, 2, ...

Dynamo displays a list of currently open document windows at the bottom of the Window menu.  A check mark appears in front of the document name of the active window.  Choose a document from this list to make its window active.

Window

Commands

Table of Contents


Help

Help menu commands

The Help menu offers the following commands, which provide you assistance with this application:

Index	Offers you an index to topics on which you can get help.

Using Help	Provides general instructions on using help

.About	Displays the version number of this application, and accesses registration.

Commands

Table of Contents


Index

Use this command to display the opening screen of Help.  From the opening screen, you can jump to step by step instructions for using Dynamo and various types of reference information.

Once you open Help, you can click the Contents button whenever you want to return to the opening screen.

Help

Commands

Table of Contents


Using Help

Use this command for instructions about using Help.

Help

Commands

Table of Contents


About Dynamo

 Use this command to display the dialog box below, containing the copyright notice and version number of your copy of Dynamo, as well as the current User Name and Registration level.  The About box also allows Registration access.

Help

Commands

Table of Contents


About Copyright
Current copyright for Dynamo


About Version
Current version for Dynamo


About Info
Author contact information


About User
Current user name


About Registration
Current registration level


About OK
Closes this dialog box


About Register
Transfers to the Registration dialog for entering a password


Buttons

The following pages are a description of all the function blocks utilized in Dynamo.

General

Dynamic/Static Parameters

Block Types

Block Modes

 	Generators

Math

Time

 	Logic

 	Miscellaneous

Transcendental

Non-linear

Table of Contents


Blocks, General

The function blocks are grouped into tool bars, which can be individually displayed and/or located using the View command.  All function blocks can have up to three inputs and three parameters.  Entering values for the parameters is done through the Block Editor, accessed by left-clicking on the appropriate block once it is in the model.  Unless otherwise specified, at least the first input is required, and each parameter is a gain factor for its corresponding input (set to a default of 1).  Where appropriate, the relevant mathematical formula is included.  In these formulae, Time is represented by t; the inputs are represented by i1, i2 and i3, and the parameters are represented by p1, p2 and p3; f1, f2 and f3 represent dynamic/static parameters.

Buttons

Table of Contents


Dynamic/Static Parameters

Several of the blocks will list both an Input and a Parameter as being equivalent.  For these functions, the parameter can be "dynamic" by using Inputs, or "static" using the Parameters.  If there is no connection to a particular Input, then the relevant Parameter is used.  With an input connected, the Input's value is used and the Parameter value is ignored.

Buttons

Table of Contents


Block Types

Blocks come in four basic types, Normal , Closure, Clock and Invisible.

Normal are just that.  They have conventional inputs and/or outputs and perform a relatively straightforward function as explained in the descriptions of the individual blocks

Closure blocks are used for closing a loop (usually a feed-back type of loop), and are required whenever a solution to X = f(X, Y) is required.  At the moment, the only Closure block supplied is Integrate, which is utilized in the tutorial examples.  Eventually, a Wye block will be supplied, which will allow direct solution of X = f(X, Y) without an integration being necessary.  Not using a Closure block when required will result in a Sort Error.

The Clock block is used to define the integration error and timing parameters for the simulation, and drives the simulation process.  All models must have one and only one Clock block.  When a new model is generated, a Clock block is automatically generated and placed in the upper left hand corner of the model.

Invisible blocks are only used with the Clock block.  For each output interval, ClockError holds the maximum integration error during the interval, and ClockCount tracks the number of sub-intervals required for to meet the integration error limit.  (See Integration for further explanation).  These blocks are not visible on the chart but may be ezxamined in the Graph view or List view.

Buttons

Table of Contents


Block Modes

Normal blocks are available in two modes, Active and Initialize.  Blocks in the Active mode are calculated and updated every output cycle, while blocks in the Initialize mode are only calculated/updated at the very beginning of a simulation.  Certain blocks are only Active mode (Gaussian) and others are only Initialize mode (Constant).  Most blocks can be either, and are Active by default.

The use of Initialize allows building complex initial conditions and factors without slowing down the simulation, or generating excessive data.  In the List and Graph windows, only those blocks that are Active can be displayed.  The choice of Active (default) or Initialize is made in the block dialog box.

For those blocks which have the Initialize option set, there is a small red stripe underneath the output connection.  This allows viewing the block's mode without having to access the block editor.

In general, one should never use Active blocks as inputs to Initialize blocks, as the results cannot be predicted.

Buttons

Table of Contents


Generators

These buttons generate signals that can be used as inputs to other blocks.  Inputs/Parameters are used to control the particular characteristics as well as turn them on and off.

Gaussian

Jitter

Random

Sine Wave

Time Pulse

One Shot

Buttons

Table of Contents


Gaussian

  Random Gaussian number generator.  Input 1/Parameter 1 is the mean of all numbers generated, and Input 2/Parameter 2 is the standard deviation.  If Input 3 is active and negative, then the Output is 0.  Otherwise:

where rnd(x1) and rnd(x2) represent two independent calls to the random number generator, and are uniformly distributed between the values of 0 and 1.  If Parameter 3 is 0, then the seed is "random" (clock time at the start of the Run command); otherwise, if Parameter 3 is between 2 and 32,767, then this is used as the seed, allowing the same random number sequence to be generated for each simulation.  If there are multiple random generators used in the chart [Gaussian, Random or Jitter], then the actual mode will be the setting of the last random generator added to the chart.

Generators

Block Editor

Buttons


Jitter

   Generates unit pulses that are randomly spaced in time.  Input 1/Parameter 1 is the minimum time between pulses, and Input 2/Parameter 2 is the maximum time between pulses.   If Input 3 is active and negative, then the Output is always 0.   If Parameter 3 is 0, then the seed is "random" (clock time at the start of the Run command); otherwise, if Parameter 3 is between 2 and 32,767, then this is used as the seed, allowing the same random number sequence to be generated for each simulation.  If there are multiple random generators used in the chart [Gaussian, Random or Jitter], then the actual mode will be the setting of the last random generator added to the chart.  Turning the generator on and off irregularly will also cause the repeatability of the random numbers to vary.

Generators

Block Editor

Buttons


Random

  Generates a random number uniformly distributed between two limits.  Input 1/Parameter 1 is the lower limit, and Input 2/Parameter 2 is the upper limit.  If Input 3 is active and negative, then the Output is 0.   If Parameter 3 is 0, then the seed is "random" (clock time at the start of the Run command); otherwise, if Parameter 3 is between 2 and 32,767, then this is used as the seed, allowing the same random number sequence to be generated for each simulation.  If there are multiple random generators used in the chart [Gaussian, Random or Jitter], then the actual mode will be the setting of the last random generator added to the chart.

Generators

Block Editor

Buttons


Sine Wave

   A sine wave generator with the frequency equal to Input 1/Parameter 1 (Hertz), and an initial phase angle equal to Input 2/Parameter 2 (radians).  If Time is less than Parameter 3 (no Input 3 connection), or Input 3 is initially negative, then the Output is the sine of the initial angle.  If Input 3 should go negative, the generator output is fixed at the sine of the last angle.  Once Input 3 again goes positive, the oscillation continues from the last angle.  The Output oscillates between +1 and -1.

Generators

Block Editor

Buttons


Time Pulse

   Generates a pulse train with a period equal to Input 1/Parameter 1 (seconds), with the Output equal to Input 2/Parameter 2.  If Input 3 is connected, the first pulse occurs when Input 3 is greater than or equal to 0.  The Output is equal to 0 between pulses and whenever Input 3 (if connected) is less than 0.  To restart the pulse train, Input 3 must once again be equal to or greater than 0. If Input 3 is not connected, the pulse train does not start until Time is greater than Parameter 3.  If Input 1/Parameter 1 should be equal to or less than 0, then the Output will be a constant replication of Input 2/Parameter 2.

Generators

Block Editor

Buttons


One Shot

   Primarily designed for use with Time Pulse and Jitter, this function provides a pulse of height Input 2/Parameter 2 and width Input 3/Parameter 3 whenever Input 1 transitions from 0 or less to greater than 0.  The input trigger is disabled whenever the output is high, i.e., a pulse coming in when the One Shot is active will be ignored.  The pulse will be delayed from the trigger by the absolute value of Parameter 1.

Generators

Block Editor

Buttons


Math

These buttons perform the basic operations required for numerical manipulation.

Multiply

Divide

Power

Square Root

Sum

Negate

Gain

Buttons

Table of Contents


Multiply

  Multiplies all of the active inputs together, with the option of including additional gain with the parameter associated with each input.  If no inputs are active, the Output value is 1.

Math

Block Editor

Buttons


Divide

   The Output is equal to Input 1 divided by Input 2. No parameters.

Math

Block Editor

Buttons


Power

  Generates the value of Input 1 to the power of Input 2.  If Input 1 is negative, then the Output is negative.  No parameters.

Math

Block Editor

Buttons


Square Root

  Generates the square root of Input 1.  If Input 1 is negative, then the Output is negative.  No parameters.

Math

Block Editor

Buttons


Sum

  Adds all of the active inputs, also with gain available for each input.

Math

Block Editor

Buttons


Negate

   The Output is Input 1 times -1.  There are no parameters.

Math

Block Editor

Buttons


Gain

  The Output is Input 1 times Parameter 1.

Math

Block Editor

Buttons


Time

At least one of these buttons must be included in any closed loop simulation.

Integrate

Delay

Decay

Clock

Buttons

Table of Contents


Integrate

  Input 1 (multiplied by Parameter 1 [default 1]) is integrated with respect to time.  The initial value at time 0 is Input 2/Parameter 2.  Parameter 2 default is 0.

NOTE: One should never use an Active block for Input 2, as the results are not predictable.

Time

Block Editor

Buttons


Delay

  The Output at Time t is equal to Input 1 at Time (t - Input 2/Parameter 2).   If Input2/Parameter 2 is greater than the current simulation time, then the Output is equal to Input 3/Parameter 3.  If Input 2/Parameter 2 is less than or equal to zero, then the Output will equal Input 1.  Parameter 1 is a gain value for Input 1.

This button provides a delayed version of the input signal, i.e., the input signal as it was earlier in the simulation.  To perform this stunt, it keeps a copy its input (Input 1) from the start of the simulation, and travels backwards in time, so to speak, to retrieve and output the earlier value.

One obvious limit is that the delay time cannot be greater than the simulation time.  If this occurs, then Input 3/Parameter 3 is the value offered.

Since the input values are only stored for every output interval, interpolation is required for values between output intervals (the delay period need not be an integer multiple of the output interval).  Dynamo tries to use the two data points on either side of the delay time in question, fits a natural cubic spline through the points, and provides the interpolated data accordingly.  If only two points are available (early in the simulation), then linear interpolation is used.  This needs to be kept in mind if the function being delayed has a high enough frequency component (such as a singularity),  to render the approximation inadequate.

Time

Block Editor

Buttons


Decay

  The Output asymptotically approaches Input 1/Parameter 1.  Input 2/Parameter 2 controls the approach rate.  If Input 2/Parameter 2 should become negative, the absolute value is used, and if Input 2/Parameter 2 should

At the completion of each output interval, the current time is saved.  During the calculations involved in the next output interval (see the Integrate block), the following formula is used:

t = current time

f1 = Input 1/Parameter 1

tp = time at last completed output interval

e = natural log base

dt = tp - t

f2 = Input 2/Parameter 2

Output(t) = ((f1 - Output(tp))*(1 - e^(-dt/f2)) + Output(tp)

Input 3/Parameter 3 is the initial Output at Time 0.

For numerical stability reasons, if (dt/f2) is ever greater than 660, then the output is f1.

Time

Block Editor

Buttons


Clock

  The Output provides a source for the time variable.  Every chart must have one and only one Clock block, even if it is not connected to the simulation network.  For this reason, every new model is created with a Clock block, which may not be deleted, but can be moved.  Parameter 1 is the integration error limit, Parameter 2 is the output interval, and Parameter 3 is the total time for the simulation.  There are no inputs.  If the total time is not greater than or equal to the output interval, you will receive an error when running a simulation.

Time

Block Editor

Buttons


Logic

These blocks perform typical logical operations.

And

Exclusive Or

Inclusive Or

Stop

Relay

Zero Order Hold

Buttons

Table of Contents


And

  Provides the logical AND function of the active inputs.  If the respective input is greater than 0, then it is considered TRUE, otherwise it is considered FALSE.  If all of the active inputs are TRUE, then the Output is equal to 1.  Otherwise the Output is equal to 0.  If none of the inputs are connected, then the Output is also 0.   There are no parameters.

Logic

Block Editor

Buttons


Exclusive Or

  Provides the logical EXCLUSIVE OR function for the active inputs.  If the respective input is greater than 0, then it is considered TRUE, otherwise it is considered FALSE.  If one and only one of the active inputs is TRUE (greater than 0) then the Output is equal to 1.  Otherwise the Output is equal to 0.  If none of the inputs are connected, the Output is 0.  There are no parameters.

Logic

Block Editor

Buttons


Inclusive Or

  Provides the logical INCLUSIVE OR function for the active inputs.  If the respective input is greater than 0, then it is considered TRUE, otherwise it is considered FALSE.  If any one of the active inputs is TRUE, then the Output is equal to 1.  Otherwise the Output is equal to 0.  If none of the inputs are connected, then the Output is 0.  There are no parameters.

Logic

Block Editor

Buttons


Stop

   If Input 1 (after gain) is less than Input 2/Parameter 2, then the simulation will stop.  Parameter 1 is an optional gain for Input 1.

Logic

Block Editor

Buttons


Relay

   If Input 3 is greater than Parameter 1, then the Output is equal to Input 1; otherwise the Output is equal to Input 2.

Logic

Block Editor

Buttons


Zero Order Hold

   Also called a Sample and Hold Function.  If Input 2 is greater than Input 3/Parameter 3, then the Output is equal to Input 1.  Otherwise, the Output is the last value of Input 1 when Input 2 was greater than Input 3/Parameter 3.  Parameter 1 is the initial function value (if Input 2 is initially less than or equal to Input 3/Parameter 3).  The current hold value is stored in Parameter 2.

Logic

Block Editor

Buttons


Miscellaneous

A collection of miscellaneous blocks.

Constant

Pi

Wye

Buttons

Table of Contents


Constant

  The Output is always the value of Parameter 1.  There are no inputs.

Miscellaneous

Block Editor

Buttons


Pi

   This block has no inputs or parameters, and is used only to supply a convenient source for 3.1415...

Miscellaneous

Block Editor

Buttons


Wye

   Not implemented in this release.  The intent of this function will be used in x = f(x, y) situations.

Miscellaneous

Block Editor

Buttons


Transcendental

A collection of common transcendental functions.

Sine

Cosine

Arctangent

Log e

Log 10

Exponential

Decibel

Buttons

Table of Contents


Sine

  Sine function, input is assumed to be in radians.  No parameters.

Transcendental

Block Editor

Buttons


Cosine

  Cosine function, Input 1 is assumed to be in radians.  No parameters.

Transcendental

Block Editor

Buttons


Arctangent

  This has two inputs, with only the first one mandatory.  If only the first input is used, then the Output is +/- PI/2.  With both inputs used, the Output is from 0 to 2*PI, with the first input being X and the second Y.  No parameters.

Transcendental

Block Editor

Buttons


Log e

   The Output is equal to the natural log (base e) of Input 1.  If the input is negative, then the logarithm is based on the absolute value of the input, and the output is negative.  If the input is zero, then the output is zero.  There are no parameters.

Transcendental

Block Editor

Buttons


Log 10

   The Output is equal to the log (base 10) of Input 1.  If the input is negative, then the logarithm is based on the absolute value of the input, and the output is negative.   If the input is zero, then the output is zero.   There are no parameters.

Transcendental

Block Editor

Buttons


Exponential

 The Output is equal to the natural log base (2.71828...) to the power of Input 1.  No parameters.

Transcendental

Block Editor

Buttons


Decibel

  The standard decibel function, with

 Output = 10 * log(i1^2)

 If the input is zero, then the output is zero.  There are no parameters.

Transcendental

Block Editor

Buttons


Non-linear

A collection of nonlinear functions.

Absolute

Back Lash

Bang

Dead Space

Function Generator

Integer

Limiter

Modulo

Negative Clip

Offset

Positive Clip

Buttons

Table of Contents


Absolute

  Provides the absolute value of Input 1.  There are no parameters.

NonlInear

Block Editor

Buttons


Back Lash

   Used to simulate backlash. The Output will lag Input 1 by up to the current absolute amount of Input 2/Parameter 2.  If Input 2 changes while Input 1 is moving, then the amount of lag will enlarge or shrink with Input2.  The initial Output value at time 0 is Input 3/Parameter 3, within the limits of the backlash and Input 1.

Parameter 1 controls the distribution of the backlash, both initially and as it changes (if the dynamic backlash option is chosen).  Parameter 1 can vary from +1 to -1, where +1 puts all of the backlash forward, and -1 puts all of the backlash rearward.  A value of 0 would evenly distribute the backlash front to rear (see Figure 1).  If Parameter 1 is greater than +1 or less than -1, then +1 or -1 is used as the value.

Parameter 1 also controls the redistribution of the backlash following the same guidelines.  If backlash should increase, the additional backlash is added proportionally.  Conversely, if decreased, it is subtracted proportionally.  The total amount of backlash is always calculated before the Output is calculated.

NonlInear

Block Editor

Buttons


Bang

 Sometimes called a SIGN function, this Output is 1 times the sign of the input function.  If the input is exactly 0, then the Output is 0.  No parameters.

NonlInear

Block Editor

Buttons


Dead Space

 Simulates a zone where there is no activity, with Input 2/Parameter 2 delimiting the upper bound, and Input 3/Parameter 3 the lower bound.  If Input 1 is greater than Input 3/Parameter 3 and less than Input 2/Parameter 2, then the Output is Parameter 1.  If Input 1 is greater than Input 2/Parameter 2, then the Output value is Input 1 minus Input 2/Parameter 2 plus Parameter 1.  Similarly, if Input 1 is less than Input 3/Parameter 3, then the Output value is Input 1 minus Input 3/Parameter 3 plus Parameter 1.  If Input 3/Parameter 3 is ever equal to or greater than Input 2/Parameter 2, then the function has no effect, with the Output simply equaling Input 1 plus Parameter 1.

NonLinear

Block Editor

Buttons


Function Generator

  Allows development of a custom function by supplying the Output over a fixed range.

*************************

Frequently, it is desirable to simulate a function that does not have an "easy" equation for generating

Input 2/Parameter 2 is the upper bound of the range, and Input 3/Parameter 3 is the lower bound of the range.  The Y-axis values supplied by the user are assumed to be evenly distributed over this range, with the Output equal to the first value in the list (zero based) when Input 1 is exactly equal to Input 2/Parameter 2, and equal to the last value in the list when Input 1 is exactly equal to Input 3/Parameter 3.  Any time Input 1 falls on one of the intervening divisions the Output is the value of that list element.  When Input 1 is between divisions, an interpolated natural cubic spline function (see below for description) is used to calculate the value.  If Input 2/Parameter 2 is ever equal to or less than Input 3/Parameter 3, or the array of data points has less than three entries, the Output is always 0.

The high and low limits are calculated during the initialization of the model that occurs prior to every simulation.  If Input 2 and/or Input 3 are utilized for the limits, the resulting values are stored respectively in Parameter 2/Parameter 3.

Parameter 1 controls the Output when Input 1 is either greater than Input 2/Parameter 2, or less than Input 3/Parameter 3.  If Parameter 1 is 0, then the Output is always Input 2/Parameter 2 when Input 1 is greater than Input 2/Parameter 2, and the Output is always Input 3/Parameter 3 when Input 1 is less than Input 3/Parameter 3.  If Parameter 1 is any value other than 0, then the following extrapolation procedure is utilized.

When Input 1 is less than Input 3/Parameter 3, then an extrapolation from the first two elements in the list is used to calculate the Output.  Correspondingly, if Input 1 is greater than Input 2/Parameter 2, then an extrapolation of the last two elements is used is used to calculate the Output.

The list of values is generated/modified by clicking on "Data" in the Function Generator block's dialog (accessed by clicking on the Function Generator block).

Description of cubic spline, reference, and explanation of FuncGen model

Non-Linear

Block Editor

Function Generator Data

Buttons


Cubic Spline

The interpolation scheme used for the Function Generator and Delay blocks is


Integer

    Strips the fractional portion of Input 1 and provides the integer portion as the Output.  There are no parameters.

Non-Linear

Block Editor

Buttons


Limiter

   If Input 1 is greater than Input 2/Parameter 2, then the Output is equal to Input 2/Parameter 2; if Input 1 is less than Input 3/Parameter 3, then the Output is equal to Input 3/Parameter 3; in all other cases the Output is equal to Input 1.  If Input 3/Parameter 3 is ever equal to or greater than Input 2/Parameter 2, then the function has no effect, with the Output simply equaling Input 1.  Parameter 1 is an optional input gain value, default value of 1.

Non-Linear

Block Editor

Buttons


Modulo

   Provides the standard MOD function.  The Output is the remainder of Input 1 divided by Input 2/Parameter 2.  If Input 2/Parameter 2 is 0, the Output is 0.  Parameter 1 is an optional input gain value, default value of 1.

Non-Linear

Block Editor

Buttons


Negative Clip

   If Input 1 is greater than 0, then the Output is equal to Input 1; otherwise the Output is 0.  There are no parameters.

Non-Linear

Block Editor

Buttons


Offset

   The Output is equal to Input 1 plus Parameter 1.

Non-Linear

Block Editor

Buttons


Positive Clip

   If Input 1 is less than 0, then the Output is equal to Input 1; otherwise the Output is 0.  There are no parameters.

Non-Linear

Block Editor

Buttons


Block Editor

This dialog box allows viewing/editing specific features of a block within the model.  To access this dialog box, left-click on the appropriate block.

Buttons

Table of Contents


BE, Name
The name of the block, which is used in the various display modes.  The initial default is the block type.


BE, Invert
Normally the block is drawn with the output on the right.  Checking this box draws the block with the output on the left.


BE, Initialize
If checked, the block is only calculated at the beginning of a simulation.  Is grayed for blocks that are always Initialize; and nonexistent for blocks which are always Normal.


BE, Current Value
Displays the current value of the block.


BE, Type
The current block type


BE, Inputs
Only those inputs which are allowed for this type of block are displayed.  The first part of the text for each input describes the function of that input.  If the input has been connected, the name of the connected block is displayed next.


BE, Clear
Clicking on the button will clear the particular input, allowing a different block to be connected


BE, Parameters
Only those parameters which are allowed for this type of block are displayed.  The initial text describes the function of that parameter.  The following box allows entering values for the parameter.  Enter floating point numbers with the convention +/- xxx e +/-yyy, where xxx is the core number, and yyy is the exponent.


BE, Notes
Allows free form entry of text relevant to this particular block.


BE, Line Color
Allows changing the line color of connecting lines emanating from the blocks output


BE, Func Gen Data
Function Generator blocks only.  This allows entry/modification of the data utilized to describe a function block.


Function Generator Data

This dialog box allows entering/modifying the data which describes the function for the function generator block.

Buttons

Table of Contents


FG, Input Data
Allows entry of data for insertion into the list.  Hitting the Enter key will automatically add the currently displayed number to the bottom of the list and clear the input box. (See Add button).


FG, Current Data List
Displays all of the current data, and allows highlighting of a specific data point for use in conjunction with some of the other buttons.


FG, File Button
Allows inputting of data from a text file.  The text file assumes a single data point on each line.  This will also erase all previously entered data.


FG, Add Button
Adds the current input box data to the end of the list.


FG, Insert Button
Inserts the current input box data in front of the highlighted value in the list box.


FG, Replace Button
Replaces the highlighted value in the list box with the current input box data.


FG, Remove Button
Removes the highlighted value in the list box.


FG, Remove All Button
Removes all of the data in the list box.


Views

This section describes the three views of the data for a model.  All three views may be printed; from the keyboard with Ctrl-P, from the menu with File | Print, or by right-clicking the [image] button on the main tool bar.  Print preview is also available for all three views, available from the menu with File | Print Preview.

To modify the appearance of any of the views, press the [image] button on the main tool bar.

All three views contain "splitter bars", which allow creation of up to four copies

Chart Window - Main display for creating and running a simulation

Graph Window - Allows up to three blocks to be plotted against a fourth block (usually time).

List Window - Displays the values of all blocks for each output interval.

Table of Contents


Chart Window

The Chart Window is the main view of the model, and the view which needs to be active to modify and/or run the model.  The best description for generating and modifying a model is found in the tutorial Constructing the model.  This section also contains a summarization of Shortcuts with mouse.  Modifications to the appearance of the Chart window are outlined in Chart, Viewing Modifications.

A second chart window is useful in setting it up for printing, etc., and leaving the first one for navigation, etc.  This allows the display mode to be set to Monochrome, blocks enlarged, spacing increased, etc., without affecting the main viewing window.

Views

Table of Contents


Chart Title
An optional window title


Chart Notes
Optional notes, which can also be optionally displayed


Chart Block Values
The current value of the block after the last simulation (optionally displayed)


Chart Blocks
A block active in the current model.  Color coded for its group.


Chart Block Name
Name of the block.  Default is the same as the block type.


Chart Connecting Lines
Lines connecting block inputs and outputs, illustrating the definition of the model.  The line color is controlled from the output connection block.


Chart Holding Squares
Holding squares showing the locations available for additional blocks


Graph Window

The Graph view displays the output of up to three blocks plotted  on the Y axis, with a fourth block being the X axis.  The X axis is usually Time, but can be any block desired.

A Graph view is generated from the menu with Options | Chart, or by right-clicking the [image] button on the Display tool bar.  The initial graph is blank, and must be setup, from the menu with Options | View, or utilizing the [image] button on the Display tool bar.  As many graph views may be generated as desired.  Whenever the model is changed and the simulation data recalculated with a Run command, the graph view is automatically updated with new data.

Views

Table of Contents


Graph Labels Y
Labels illustrating values at tick marks for up to three different graphs.  Color coded with graph and legend.


Graph Lines
Lines illustrating the data plotted.  Color coded with labels and legends.


Graph Labels X
X axis values for all displayed graphs.  Usually time, but may be any block.


Graph Legends Y
Legend indicating name of block graphed and appropriate exponent.  Color coded with graph and label.


Graph Legend X
X axis block name and exponent.


List Window

The List view displays the output of all blocks in a columnar text format.  The names of the blocks are displayed across the top, and the values of each block are displayed in scientific format.  The top to bottom order of the data is time oriented.  The leftmost column (usually Time) is always displayed when scrolling horizontally.

A List view is generated from the menu with Options | List, or by right-clicking the [image] button on the Display tool bar.  The initial list display shows the blocks, left to right, in the order they were created, and lists all blocks in the model when the list view was generated.  This can be modified, from the menu with Options | View, or utilizing the [image] button on the Display tool bar.  As many list views may be generated as desired.  Whenever the model is changed and the simulation data recalculated with a Run command, the list view is automatically updated with new data.

Views

Table of Contents


List Block Names
Block names


List Block Values
Values of the listed blocks for each time value, in scientific format.  Precision and spacing is adjustable


Error Messages

The following sections explain errors and messages from Dynamo, and potential remedies for curing them.

Run Time Error - Errors encountered when running a simulation.

Line Error - Messages encountered when connecting blocks together within the model.

Load Error - Errors encountered when loading a model file into Dynamo.

Table of Contents


Run Time Error

The following error messages arrive when attempting to run a simulation.  They will always abort the simulation.

Divide by zero - A divide block, identified by name, and at the time specified, had a value of zero for the denominator.  The simulation data is valid up to the cessation of the simulation.

Sort - A sort error was encountered, usually caused by a closed loop of Normal blocks.

Missing Input - Many blocks have required inputs, i.e., the input must be connected to another's output to function correctly.  The input number and the block's name are identified.  If there are several such errors,  pressing the OK button will continue to cycle through the offending inputs/blocks.  Pressing the Cancel button will end the process.

Timing Specification - The specifications for the Clock block are incorrect.  Consult the Clock block for correct settings.

Excessive integration steps (n) at time m - The integration algorithm tried to sub-divide the output interval into a number of sub-intervals (n) greater than the current Max Steps setting.  This occured at time m.

Error Messages

Table of Contents


Line Error

These are messages associated with attempting to connect one block's input to another blocks output.  In general, the "cure" for these messages is to invert one or both of the blocks, move one or both of the blocks, or change (using the Options|Preferences command) the number of lines allowed between blocks.  In both instances, a line which could not be connected is indicated at both the input and output with matching characters.

Vertical Line Not Available - A vertical line (a special case where there is no use of a horizontal street) could not be drawn, and characters will be substituted.

General Line Not Available - A general line could not be drawn, and characters will be substituted.

Error Messages

Table of Contents


Load Error

These are errors associated with loading in a data file.

Unable to find match for input "n" of block "name" - when loading in a data file, an attempt to make a connection between block "name" and another block failed.  This is not a fatal error, and the model will continue the loading process.

Need updated version of Dynamo to load this data file - You are attempting to load a data file created by a version of Dynamo later than the one you currently have.  Obviously time to upgrade.

Invalid data in File - A miscellaneous fatal error indicating a corrupted data file.

Error Messages

Table of Contents


Future Upgrades

Dynamo is constantly being upgraded to include new features, and in response to requests from users.  The following are currently planned upgrades to future versions of Dynamo.  To get your favorite request onto the list of upgrades, respond with the appropriate suggestion, and include any comments on rank ordering the current planned upgrades.

Integration

Simulation

Blocks

Views

Model Building

Help File

Table of Contents


Integration upgrades

Integration block enhancements - For each Integrate block, the user will be able to specify the allowed error.  Also, each Integrate block will have its own Error and Count

Future Upgrades

Table of Contents


Simulation Upgrades

Loop detection - Display Sort Failures with an indication of likely blocks to have caused the failure.

Snapshot function - Provide a slide control to allow positioning the "clock" at any point between the start and end of a simulation.  The blocks would all list their respective values at this location, and various printable viewing options would allow direct access to the data.

Simulation starting options - Enhancements to the Clock block would be Continuing a simulation from the endpoint, as well as resuming a simulation from any intermediate position (after none sortable changes are supposedly made).

Run window - Add a thermometer style control to indicate percentage progress during a simulation.

Simulation data preservation - Provide an option box for automatic reminding of saving simulation data prior to modifying the model or running another simulation.

LaPlace diagrams - Provide a LaPlace "mode" for analyzing common control system diagrams.

Initialize command - Would perform initialization functions only (evaluating everything at time 0), allowing a quick check of initial conditions, etc.

Message boxes - Upgrade all message boxes with a common format and a Help button.

Overflow/underflow - Institute a method for capturing this condition and displaying the appropriate error message.

Integration error - Allow each integrator block to optionally have its own error limits.  Include additional blocks for displaying current error per integrator block.

Memory allocation - Provide a more efficient method for allocating simulation data memory prior to the Run command.

Future Upgrades

Table of Contents


Block Upgrades

External data - Provide a block which would allow reading data from an external file (including previous simulations) as a forcing function or block input.

Fuzzy logic - Add blocks which simulate fuzzy logic functions.

Function Generator Data - Improve the ability to view and import/export the function definition data.

Wye block - Provide a Wye block, allowing implicit loops [f(x) = x, y].

Trigonometric blocks - Allow a Parameter to accept the input (as well as provide output) as either radians, degrees or grads.

Stop block - Provide a message box when a simulation is stopped with the Stop block.

Random number generation - All blocks that utilize random number generators (Jitter, Gaussian, etc.) will have their own generation engine, allowing setting initialization parameters, etc. independently.

Initialize blocks - Develop a unique appearance to distinguish which blocks have the initialize option set.

Differentiation - Add a block which provides a differential utilizing a cubic spline.

Future Upgrades

Table of Contents


View Upgrades

The following are general for all views:

Split views - Allow the ability to save and restore split views as they are shown, including size, position, etc.

Chart View

Graph View

List View

Future Upgrades

Table of Contents


Chart View Upgrades

Redraws - Currently screen redraws are done with a brute force method of redoing the entire screen.  The upgrade will redraw only those portions visible/necessary, considerably speeding up the process, especially on large models.

Text view - Provide a new text based view of the model, allowing various filter and/or sorting options.

Arrow capture - Add an option for modifying the capture area when selecting an input or output.

Notes - If the appropriate selector is activated, show a blocks notes (when available) whenever the cursor is over the block (ala tool tips).

Future Upgrades

View Upgrades

Table of Contents


Graph View Upgrades

Real time graphing - If a graph view is active when the Run button is depressed, the graph will display the data as it is generated.

Zooms - Allow zooming by selecting a portion of the graph with the mouse, and reverting back to full scale (or previous zoom) with a right-click.

Fourier plots - Provide a new view for plotting the Fourier transform of any inputs.

Logarithmic scales - Allow selecting log scales for any of the axes plotted.

X-Y plots - Add an additional graph view type which will allow up to three x-y pairs plotted on a common set of x-y axes.  Useful for analyzing systems with two-dimensional motions.

Future Upgrades

View Upgrades

Table of Contents


List View Upgrades

Printing - Provide a thermometer style control to indicate progress.

Sorting - Allow sorting of the data by the parameter in the first column.

Time selection - Allow specifying the start and stop times for viewing the data.

Shift key - Allow use of the Shift key in conjunction with the left-click to select a group of blocks between the current and nearest previously selected block.

Future Upgrades

View Upgrades

Table of Contents


Model Building Upgrades

Save Model Only - This command will allow saving a model only, without the accompanying data generated by a simulation.

Replace - Allow a block to be replaced by another block type, preserving the input/output connections.

Multiple Select - Allow the selection of multiple blocks for moving, copying, deleting, etc.

Subroutines - Provide the development, saving and using of subroutines, a collection of blocks that appear as one block in a model.

Close - Provide a close function (and button) which will optionally save and close all windows associated with a model.  Since closing an individual window is easy utilizing the X button, the File|Close command will perform this task.

Options/Preferences - Add a button for this command

Version Control - Add a style of version control similar to Word

Future Upgrades

Table of Contents


Help File Upgrades

Future Upgrades

Table of Contents


Misk

Add version control functionality to DialogData

try modify OnGetFocus to have first mouse click only make window active,   and not perform any other tasks

after release, start change list in help file

Why doesn't escape work when trying to stop a run (doesn't have focus); make the run window generically on top so program isn't frozen

add _DEBUG flagged command/results for passwords


Revision history

The following is a complete history of Dynamo from the intial release, with a listing of updates/improvements/bug fixes as they occur.  As bugs are discovered/reported, they will be listed in the appropriate revision section, with a comment on the revision in which they were fixed.

Revision 1.01 - Released Oct. 15, 1997

Revision 1.02 - Released Oct 22, 1997

Table of Contents


Revision 1.01

Initial release - no reported bugs

Revision history

Table of Contents


Revision 1.02

•	Added Max Steps to the Preferences dialog box.

•	Fixed a memory leak created when deleting a block.

•	Added buttons for the Preferences and Close commands.

•	Fixed a nasty bug associated with the creation of Graph views

Revision history

Table of Contents


Notes


Run Command Note
The data generated by successfully utilizing the Run command


Error limit
The maximum error allowed for an Integrate block during a simulation


Output Interval Note
The time interval between outputting (file, plot or list box) the value(s) of appropriate blocks.


Simulation Interval Note
The total time allocated for a simulation run.


Backlash Figure 1


Run Window
A small window which is active while a simulation is being calculated.  Displays the current simulation time within the window.  Left-clicking within the window will immediately stop the simulation.


Left Click
Depress the left mouse button briefly while the cursor is over the area of interest.


Right Click
Depress the right mouse button briefly while the cursor is over the area of interest.


Parameter Note
Static data that can be set by left-clicking the block and modifying the appropriate Parameter box in the Block Editor dialog.